jon*_*ham 0 php mysql select case-sensitive
我想用like
in select
子句过滤我的列,like
MySQL中的默认值是不区分大小写的,但我希望它区分大小写.怎么做?
我想要这个查询:
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)
给出不同的结果.
默认字符集和排序规则是
latin1
和latin1_swedish_ci
,因此非二进制字符串比较默认情况下不区分大小写.这意味着,如果使用搜索col_name LIKE 'a%'
,则会获得以A
或开头的所有列值a
.要使此搜索区分大小写,请确保其中一个操作数具有区分大小写或二进制排序规则.例如,如果要比较具有latin1
字符集的列和字符串,则可以使用COLLATE
运算符使操作数具有latin1_general_cs
或latin1_bin
排序规则:Run Code Online (Sandbox Code Playgroud)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
MySQL :: MySQL 5.6参考手册:: C.5.5.1字符串搜索中的区分大小写(增加了重点)