本文介绍了Select会从字符串中修剪空格-这是Bug还是规范中的问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在mysql中:
select 'a' = 'a ';
返回1
推荐答案
此行为在SQL-92和SQL:2008中指定.为了进行比较,将较短的字符串填充为较长的字符串的长度.
This behavior is specified in SQL-92 and SQL:2008. For the purposes of comparison, the shorter string is padded to the length of the longer string.
摘自草案(8.2< comparison谓词>):
From the draft (8.2 <comparison predicate>):
如果X字符的长度不等于Y字符的长度,则出于比较目的,较短的字符串将有效地替换为已扩展为该长度的自身副本通过在一个或多个填充字符的右边进行串联来替换较长的字符串,其中填充字符是根据CS选择的.如果CS具有NO PAD特性,则填充字符是与实现相关的字符,不同于X和Y字符集中的任何字符,其比CS下的任何字符串都少.否则,填充字符为< space>.
除了其他出色的解决方案:
In addition to the other excellent solutions:
select binary 'a' = 'a '
这篇关于Select会从字符串中修剪空格-这是Bug还是规范中的问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!