10

有谁知道我如何使 IN 子句以区分大小写的方式运行?我已经看到 COLLATE 可以与 LIKE 一起用于字符串搜索,但我不知道它是否或如何与 IN 一起使用。例如,我想做类似的事情

SELECT * FROM pages_table WHERE topic IN ('Food','NightLife','Drinks')

我希望它返回主题为“食物”的页面,但不返回主题为“食物”的页面,而这正是当前在此查询中发生的情况。谢谢。

4

2 回答 2

9

您实际上可以像在其他示例中看到的那样使用它:

SELECT *
FROM pages_table
WHERE CAST(topic AS CHAR CHARACTER SET latin1)
        COLLATE latin1_general_cs IN ('Food','NightLife','Drinks')

这会将字符集更改为支持区分大小写的字符集,然后整理列(根据您自己的字符编码,您可能不必这样做)。

于 2012-11-12T23:56:35.513 回答
9

您可以使用BINARY运算符。就像是:

SELECT *
FROM pages_table
WHERE CAST(topic AS BINARY) IN ('Food','NightLife','Drinks');

SQL 小提琴演示

于 2012-11-13T07:27:03.330 回答