Possible Duplicate:
SQL server ignore case in a where expression
基本上我需要检查这样的东西
select * from users where name = @name, pass = @pass
问题是 'pass' = 'pAsS'
sql(ms sql-server)中的字符串比较是否有更严格的内容
最佳答案
这取决于您的排序规则,它似乎不区分大小写。例如,标准排序规则为 Latin1_General_CI_AS
,其中 CI
表示不区分大小写。您可以强制使用不同的集合来进行不同的比较:
select *
from users
where name = @name
and pass COLLATE Latin1_General_CS_AS = @pass COLLATE Latin1_General_CS_AS
顺便说一句,您不应该将密码存储在数据库中 - 您应该对它们进行加盐和散列处理。
关于sql严格相等,有什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035623/