有人知道怎样让IN语句区分大小写吗?我知道可以在LIKE语句中使用COLLATE进行字符串搜索,但我不确定是否可以或者如何在IN语句中使用。例如我想要做的是:
SELECT * FROM pages_table WHERE topic IN ('Food','NightLife','Drinks')
我希望它能返回主题为“食品”的页面,但不包括主题为“food”的页面,目前查询的结果是两者都返回,谢谢。
有人知道怎样让IN语句区分大小写吗?我知道可以在LIKE语句中使用COLLATE进行字符串搜索,但我不确定是否可以或者如何在IN语句中使用。例如我想要做的是:
SELECT * FROM pages_table WHERE topic IN ('Food','NightLife','Drinks')
我希望它能返回主题为“食品”的页面,但不包括主题为“food”的页面,目前查询的结果是两者都返回,谢谢。
你可能在其他示例中已经看到过,实际上你可以像这样使用它:
SELECT *
FROM pages_table
WHERE CAST(topic AS CHAR CHARACTER SET latin1)
COLLATE latin1_general_cs IN ('Food','NightLife','Drinks')
这将把字符集更改为支持大小写敏感并对该列进行排序(根据您自己的字符编码,您可能不需要执行此操作)。
BINARY
运算符。像这样:SELECT *
FROM pages_table
WHERE CAST(topic AS BINARY) IN ('Food','NightLife','Drinks');
... WHERE BINARY topic IN ('Food','NightLife','Drinks');
- user2988142