sql严格相等,有什么吗?

标签 sql sql-server

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/

相关文章:

php - SQL 无法获取记录

sql - 是否可以在更新语句中使用同一个表两次?

sql - 在spagoBI Studio中无法使用配置单元(CDH5 | CDH4)生成元模型

sql - 根据筛选字段和 Between 从表中获取记录,同时还具有多行的 OR 逻辑

asp.net - 在 MsSQL、ASP.NET 中每半小时删除所有行

php - CodeIgniter MSSQL 连接

sql - ms sql server中where子句中的if else条件

c# - 从 OpenFileDialog 处理多个选定的文件

c# - C#创建表并将行插入到SQL Server 2008中

sql - django 按日期时间中的日期排序/从日期时间中提取日期