甲
BINARY比较两个串的需要精确匹配
通常情况下,比较中不考虑尾随空格,但
BINARY运算符会强制其为:
BINARY还导致尾随空格很大。
mysql> SELECt BINARY ' ' = ' ';+--------------------+| BINARY ' ' = ' ' |+--------------------+| 0 |+--------------------+
顺便说一句,受尾随空白问题影响的不仅仅是纯空白比较:
mysql> SELECT 'abc ' = 'abc';+------------------+| 'abc ' = 'abc' |+------------------+| 1 |+------------------+
…但…
mysql> SELECT BINARY 'abc ' = 'abc';+-------------------------+| BINARY 'abc ' = 'abc' |+-------------------------+| 0 |+-------------------------+
…甚至更令人困惑的是,领先的空白 很 重要:
关于索引:mysql> SELECT ' abc ' = 'abc';+-------------------+| ' abc ' = 'abc' |+-------------------+| 0 |+-------------------+
BINARY将防止在字符列上使用索引。但是,文档上的注释建议,如果将运算符应用于比较的字符串文字侧, 则将 使用索引
BINARY,如下所示:
SELECT * FROM `tbl` WHERe `col` = BINARY 'string '
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)