在我的utf8_general_ci
数据库中,99.99%的搜索应该不区分大小写。现在有一个特定的情况,我需要以区分大小写的方式查找一些数据。该字段是一个varchar字段,我通常搜索不区分大小写。
我的问题是:我是否可以对通常不区分大小写的字段执行区分大小写的搜索?
答案 0 :(得分:6)
从页面中选择* 其中convert(pageTitle使用latin1)整理utf8_ ='Something'
我发现this answer描述性足够了:))
答案 1 :(得分:4)
您必须使用COLLATE
运算符
OR
如果你想要一个专栏 以区分大小写的方式处理, 用区分大小写或者声明它 二进制整理。
请参阅此处http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
答案 2 :(得分:3)
我建议更改排序规则类型,使其区分大小写,然后在99.99%的其他情况下更改您的代码。有关更改字段检查案例的信息:http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
一旦字段类型设置为区分大小写,您可以使用SQL中的LOWER()
和UPPER()
函数来标准化不敏感搜索的大小写。
答案 3 :(得分:1)
您可以使查询区分大小写, 例如,如果要检查用户标识和密码:
Select * from TableName Where WHERE LoginId=@userid COLLATE SQL_Latin1_General_CP1_CS_AS AND Password=@password COLLATE SQL_Latin1_General_CP1_CS_AS
检查用户标识和密码,如果为真,则返回值(区分大小写)。