【问题标题】:Case Sensitive Database Query [duplicate]区分大小写的数据库查询 [重复]
【发布时间】:2012-10-19 11:51:39
【问题描述】:

可能重复:
mysql case sensitive query

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

查询不是在寻找特定的字符。

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

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

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

如何让它区分大小写?

【问题讨论】:

标签: mysql sql case-sensitive exact-match


【解决方案1】:

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

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

名称中的 CS 表示区分大小写

【讨论】:

  • 谢谢你,做到了。我会在 7 分钟内标记你的答案 ;-)
【解决方案2】:

你可以让列区分大小写

假设你使用的是mysql数据库

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

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

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

【讨论】:

    猜你喜欢
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2016-01-17
    • 2018-10-04
    相关资源
    最近更新 更多