【发布时间】:2015-09-14 07:03:30
【问题描述】:
SQL 中的值是 USERNAME=ADMIN PASSWORD=ADMIN
SELECT * FROM TBL_USER
WHERE USERNAME='ADMIN'
AND PASSWORD COLLATE LATIN1_GENERAL_CS_AS=N'ADMIN'
上述查询工作正常。
2) 如果我在密码前添加一个空格。
SELECT * FROM TBL_USER
WHERE USERNAME='ADMIN'
AND PASSWORD COLLATE LATIN1_GENERAL_CS_AS=N' ADMIN'
这也是正确的,因为它返回了一条提示密码错误的消息。
3) 如果我在密码末尾添加一个空格:
SELECT * FROM TBL_USER
WHERE USERNAME='ADMIN'
AND PASSWORD COLLATE LATIN1_GENERAL_CS_AS=N'ADMIN '
这个查询应该失败,但它没有检索数据。
任何人都可以帮我解决这个问题。第三个条件应该失败,因为表中的值是“admin”并且提供的值是“admin”(末尾有空格)。
【问题讨论】:
-
N'ADMIN'?您使用的是什么 DBMS? -
我正在使用 Sql。 'N' 用于 nvarchar 类型列。
-
“SQL”不是 DBMS 产品,它是一种查询语言。
标签: sql sql-server