区分大小写的数据库查询

时间:2012-10-19 11:51:39

标签: mysql sql case-sensitive exact-match

  

可能重复:
  mysql case sensitive query

正在开发一个PHP脚本,用于检查数据库中某些值的值。到目前为止,我认为它工作正常,但我发现了一个问题。

查询未查找特定字符。

所以如果我使用这个查询:

SELECT *
FROM `facilitydb_login`
WHERE
facilitydb_login.`password` = 'PASS'

我想要结果,因为密码是PASS。但是如果你填写pass(小写),则会返回相同的条目。

如何区分大小写?

2 个答案:

答案 0 :(得分:6)

您应该使用区分大小写的排序规则,例如

SELECT *
FROM `facilitydb_login`
WHERE facilitydb_login.`password` collate latin1_general_cs = 'PASS'

名称中的CS意味着它区分大小写

答案 1 :(得分:2)

你可以使列区分大小写

假设您正在使用mysql数据库

ALTER TABLE facilitydb_login 
CHANGE password `password` VARCHAR(100) BINARY NOT NULL;

或者如果你想成为select语句的一部分,那么

SELECT *
FROM `facilitydb_login`
WHERE BINARY 
facilitydb_login.`password` = 'PASS'