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

时间:2011-11-06 23:34:45

标签: php mysql select case-sensitive

我想在like子句中使用select过滤我的列,MySQL中的默认like不区分大小写,但我希望它区分大小写。怎么做?

我想要这个查询:

select * from my_table where column1 like '%abc%'

和这个查询:

select * from my_table where column1 like '%Abc%'

给出不同的结果。

1 个答案:

答案 0 :(得分:9)

  

默认字符集和排序规则为latin1latin1_swedish_ci,因此非二进制字符串比较默认情况下不区分大小写。这意味着,如果您使用col_name LIKE 'a%'进行搜索,则会获得以Aa开头的所有列值。 要使此搜索区分大小写,请确保其中一个操作数具有区分大小写或二进制排序规则。例如,如果要比较两个都具有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

MySQL :: MySQL 5.6 Reference Manual :: C.5.5.1 Case Sensitivity in String Searches(强调补充)