MySQL根据小写和大写字符之间的差异进行选择

时间:2016-10-21 18:30:46

标签: mysql uppercase lowercase

我有这样的表:

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中搜索,有些答案会讨论UPPERLOWERUCASE在select查询中的使用,但它们会返回所有行。

有没有办法只返回正确的行?

1 个答案:

答案 0 :(得分:2)

字符串比较可以在sql中以两种截然不同的方式执行..binary而不是二进制.. 如果你没有转换二进制..比较是个例句。如果你使用二进制,比较是由字节完成的,也是区分大小写的..

尝试使用

SELECT * FROM `hash_table` WHERE BINARY `hash` = BINARY "abc"