以下两个查询有什么区别?
SELECT * FROM table WHERE value = 'hello';
- and -
SELECT * FROM table WHERE BINARY value = 'hello';
mysql'如何知道'除非指定二进制,否则在进行匹配时忽略大小写?在进行二分查找时,性能开销是否有任何增加?
答案 0 :(得分:1)
使用二进制比较的二元运算符比较字符串。
假设你有表demo
:
mysql> select * from demo;
+----+------+
| id | name |
+----+------+
| 1 | Foo |
| 2 | FOO |
| 3 | Bar |
+----+------+
如果您选择行:
SELECT * FROM demo WHERE name = 'Foo';
您将收到两条带有ID 1和2的记录。
当您使用BINARY
类型为:
SELECT * FROM demo WHERE name = BINARY 'Foo';
您只会收到一条记录 - id = 1。