使用 LIKE BINARY
:
mysql> SELECT 'abc' LIKE 'ABC';
-> 1
mysql> SELECT 'abc' LIKE BINARY 'ABC';
-> 0
latin1
的列,而默认的服务器字符集为utf8mb4
,则select * from Table where Col like binary 'über'
将无法匹配Table
中具有值为'über'
的Col
行,因为在Latin1编码下ü的十六进制表示为0xFC
,而在utf8mb4编码下为0xC3Bc
。如果您想确保正确性,您需要使用二进制排序规则进行字符串比较。 - Paul WheelerWHERE Prompt LIKE '%ElasticSearch%' COLLATE utf8_bin
返回的是 ElasticSearch
而不是 Elasticsearch
(大小写字母 S
的区别)。 - Kiplike convert('a%' using utf8mb4) collate utf8mb4_bin
,这样无论服务器的默认字符集还是当前会话的字符集如何,都可以正常工作。或者,您可以显式设置会话的字符集。 - Paul Wheeler
CONCAT_WS
的行为而遇到麻烦。 - Paul Wheeler