你如何强制mysql LIKE区分大小写?

Boh*_*ian 80 mysql sql case-sensitive sql-like

可能重复:
Mysql喜欢区分大小写

Mysql忽略了LIKE比较的情况.

你如何强迫它执行区分大小写的LIKE比较?

Boh*_*ian 154

用途LIKE BINARY:

mysql> SELECT 'abc' LIKE 'ABC';
    -> 1
mysql> SELECT 'abc' LIKE BINARY 'ABC';
    -> 0
Run Code Online (Sandbox Code Playgroud)

  • 这是一种更好的方法 (4认同)
  • @Kip更好的恕我直言,因为它没有任何字符集并且可以使用任何排序规则。它只是做一个简单的“完全匹配”,每个人都可以理解。它也更容易记住(只需记住一个关键字:“ BINARY”)和更简单的代码(您不必记住有效的字符集名称,如“ utf8_bin”)。 (2认同)

Joh*_*Woo 34

另一种选择是使用COLLATE,

SELECT *
FROM table1
WHERE columnName like 'a%' COLLATE utf8_bin;
Run Code Online (Sandbox Code Playgroud)

  • 不行.结果不区分大小写 (2认同)
  • 这在默认字符集不是 utf8 的服务器上会被破坏。此外,utf8mb4 现在也是首选字符集。我建议将代码更改为:“like Convert('a%' using utf8mb4) collat​​e utf8mb4_bin”,无论服务器的默认字符集或会话的当前字符集如何,这都将起作用。或者,您可以显式设置会话的字符集。 (2认同)