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

mgh*_*hgm 1 mysql lowercase uppercase

我有这样的表:

Table name: hash_table
----------------
 id        hash
----------------
 1         abc
 2         aBc
 3         abC
 4         AbC
 5         ABc
----------------
Run Code Online (Sandbox Code Playgroud)

小写和大写字符之间存在差异。例如abc不平等aBc

在此查询中,返回所有行:

SELECT * FROM `hash_table` WHERE `hash` = "abc"
Run Code Online (Sandbox Code Playgroud)

通过在 stackoverflow 中搜索,一些答案谈论UPPER,LOWERUCASE在选择查询中使用,但它们返回所有行。

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

sca*_*dge 7

字符串比较可以在 sql 中以两种不同的方式执行..二进制而不是二进制..如果你不转换二进制..比较不区分大小写..如果你使用二进制比较是按字节完成的,也是大小写敏感的 ..

尝试使用

SELECT * FROM `hash_table` WHERE BINARY `hash` = BINARY "abc"
Run Code Online (Sandbox Code Playgroud)