有谁知道如何使IN子句以区分大小写的方式运行?我已经看到COLLATE可以和LIKE一起用于字符串搜索,但我不知道它是否或如何与IN一起使用。例如,我想做类似
的事情SELECT * FROM pages_table WHERE topic IN ('Food','NightLife','Drinks')
我希望它返回主题为“食物”的页面,而不是那些主题为“食物”的页面,这是当前在此查询中发生的事情。感谢。
答案 0 :(得分:9)
您可以使用BINARY
运算符。类似的东西:
SELECT *
FROM pages_table
WHERE CAST(topic AS BINARY) IN ('Food','NightLife','Drinks');
答案 1 :(得分:7)
您可以像在其他示例中看到的那样实际使用它:
SELECT *
FROM pages_table
WHERE CAST(topic AS CHAR CHARACTER SET latin1)
COLLATE latin1_general_cs IN ('Food','NightLife','Drinks')
这会将字符集更改为支持区分大小写的字符集,然后整理列(您可能不必执行此操作,具体取决于您自己的字符编码)。