MySQL根据小写和大写字符之间的差异进行选择
我有这样的桌子:MySQL根据小写和大写字符之间的差异进行选择,mysql,uppercase,lowercase,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 `has
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
,但它们返回所有行
有没有办法只返回正确的行?字符串比较可以在sql中以两种不同的方式执行:二进制和非二进制。。 如果您不强制转换二进制。。这一比较不分大小写。。如果使用二进制,则比较是按字节进行的,并且也区分大小写 试用
SELECT * FROM `hash_table` WHERE BINARY `hash` = BINARY "abc"
字符串比较可以在sql中以两种不同的方式执行:二进制和非二进制。。 如果您不强制转换二进制。。这一比较不分大小写。。如果使用二进制,则比较是按字节进行的,并且也区分大小写 试用
SELECT * FROM `hash_table` WHERE BINARY `hash` = BINARY "abc"
非常感谢。❤️ 我对此进行了测试,结果是正确的。但是
hash
列是varchar
和utf8\u general\u ci
,这段代码没有问题吗?您可以看一看,记住,如果需要,您可以动态转换字符集和集合..但是在一个select中,rdbms应该假定表中的字符集相同。谢谢❤️ 我对此进行了测试,结果是正确的。但是hash
列是varchar
和utf8\u general\u ci
,这段代码没有问题吗?您可以看一看并记住,如果需要,您可以动态转换字符集和集合。但是在一个select中,rdbms应该假定表的字符集相同。