hac*_*ist 8 mysql sql case-sensitive string-search in-clause
有谁知道如何使IN子句以区分大小写的方式运行?我已经看到COLLATE可以和LIKE一起用于字符串搜索,但我不知道它是否或如何与IN一起使用.例如,我想做类似的事情
SELECT * FROM pages_table WHERE topic IN ('Food','NightLife','Drinks')
Run Code Online (Sandbox Code Playgroud)
我希望它返回主题为"食物"的页面,而不是那些主题为"食物"的页面,这是当前在此查询中发生的事情.谢谢.
您可以使用该BINARY运算符.就像是:
SELECT *
FROM pages_table
WHERE CAST(topic AS BINARY) IN ('Food','NightLife','Drinks');
Run Code Online (Sandbox Code Playgroud)
您可以实际使用它,就像您在其他示例中看到的那样:
SELECT *
FROM pages_table
WHERE CAST(topic AS CHAR CHARACTER SET latin1)
COLLATE latin1_general_cs IN ('Food','NightLife','Drinks')
Run Code Online (Sandbox Code Playgroud)
这会将字符集更改为支持区分大小写的字符集,然后整理列(您可能不必执行此操作,具体取决于您自己的字符编码).