如何在MySQL中使用区分大小写的"喜欢"进行"选择"?

jon*_*ham 0 php mysql select case-sensitive

我想用likein select子句过滤我的列,likeMySQL中的默认值是不区分大小写的,但我希望它区分大小写.怎么做?

我想要这个查询:

select * from my_table where column1 like '%abc%'
Run Code Online (Sandbox Code Playgroud)

而这个查询:

select * from my_table where column1 like '%Abc%'
Run Code Online (Sandbox Code Playgroud)

给出不同的结果.

Mat*_*all 9

默认字符集和排序规则是latin1latin1_swedish_ci,因此非二进制字符串比较默认情况下不区分大小写.这意味着,如果使用搜索col_name LIKE 'a%',则会获得以A或开头的所有列值a.要使此搜索区分大小写,请确保其中一个操作数具有区分大小写或二进制排序规则.例如,如果要比较具有latin1字符集的列和字符串,则可以使用COLLATE运算符使操作数具有latin1_general_cslatin1_bin排序规则:

col_name COLLATE latin1_general_cs LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_general_cs
col_name COLLATE latin1_bin LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_bin
Run Code Online (Sandbox Code Playgroud)

MySQL :: MySQL 5.6参考手册:: C.5.5.1字符串搜索中的区分大小写(增加了重点)

  • 按照Matt的手册链接.它将向您展示如何以各种方式解决您的问题.一个简单的例子是用['%Abc'COLLATE latin1_bin]替换['%Abc']. (2认同)