在我的 MySQL 数据库上,我的排序规则设置为utf8_general_ci
. 我还检查了数据库中表的排序规则。这应该允许不区分大小写的查询。但是,所有查询仍然是区分大小写的。
例如,如果我的用户名首字母大写,则此查询将不起作用。
SELECT *
FROM users
WHERE username = 'test'
AND password = 'test'
我正在使用 MySQL 5.5.27 社区版。谢谢。
在我的 MySQL 数据库上,我的排序规则设置为utf8_general_ci
. 我还检查了数据库中表的排序规则。这应该允许不区分大小写的查询。但是,所有查询仍然是区分大小写的。
例如,如果我的用户名首字母大写,则此查询将不起作用。
SELECT *
FROM users
WHERE username = 'test'
AND password = 'test'
我正在使用 MySQL 5.5.27 社区版。谢谢。
您的排序规则设置为ci
(不区分大小写)只会影响您在数据中搜索的方式,而不是列。IIRC,列名区分大小写,表名不区分。
遵循数据库的标准命名约定。
我不太了解设置为不区分大小写的数据库,但您可以使用 Lower()
例如:
SELECT * FROM users WHERE Lower(username) = 'test' AND lower(password) = 'test'
按照@mauris 的回答。否则你在 php 中使用 strtolower($username) 和
SELECT * FROM users WHERE LOWER(username) = 'test' AND password = 'test'