我有这样的表:
Table name: hash_table
----------------
id hash
----------------
1 abc
2 aBc
3 abC
4 AbC
5 ABc
----------------
小写和大写字符之间存在差异。例如abc
不等aBc
。
在此查询中,返回所有行:
SELECT * FROM `hash_table` WHERE `hash` = "abc"
通过在stackoverflow中搜索,有些答案会讨论UPPER
,LOWER
和UCASE
在select查询中的使用,但它们会返回所有行。
有没有办法只返回正确的行?
答案 0 :(得分:2)
字符串比较可以在sql中以两种截然不同的方式执行..binary而不是二进制.. 如果你没有转换二进制..比较是个例句。如果你使用二进制,比较是由字节完成的,也是区分大小写的..
尝试使用
SELECT * FROM `hash_table` WHERE BINARY `hash` = BINARY "abc"