首页 文章

案例不敏感的MySQL数据库

提问于
浏览
2

在我的MySQL数据库中,我的排序规则设置为 utf8_general_ci . 我还检查了数据库中表的排序规则 . 这应该允许不区分大小写的查询 . 但是,所有查询仍然区分大小写 .

例如,如果我有第一个字母大写的用户名,则此查询将不起作用 .

SELECT * 
  FROM   users 
  WHERE  username = 'test' 
  AND    password = 'test'

我正在使用MySQL 5.5.27社区版 . 谢谢 .

3 回答

  • 1

    您的排序规则设置为 ci (不区分大小写)仅影响您搜索数据的方式,而不是列 . IIRC,列名称区分大小写,表名称不区分大小写 .

    遵循数据库的标准命名约定 .

  • 0

    我不太了解数据库设置为不区分大小写,但您可以使用Lower()

    例如:

    SELECT * FROM users WHERE Lower(username) = 'test' AND lower(password) = 'test'
    
  • 0

    按照@mauris的回答 . 否则你在php和中使用strtolower($ username)

    SELECT * FROM users WHERE LOWER(username) = 'test' AND password = 'test'
    

相关问题