在我的MySQL數據庫中,我的排序規則設置爲utf8_general_ci
。我還檢查了數據庫中表格的排序規則。這應該允許不區分大小寫的查詢。但是,所有查詢仍然區分大小寫。不區分大小寫的MySQL數據庫
例如,如果我擁有第一個字母大寫的用戶名,此查詢將不起作用。
SELECT *
FROM users
WHERE username = 'test'
AND password = 'test'
我正在使用MySQL 5.5.27社區版。謝謝。
在我的MySQL數據庫中,我的排序規則設置爲utf8_general_ci
。我還檢查了數據庫中表格的排序規則。這應該允許不區分大小寫的查詢。但是,所有查詢仍然區分大小寫。不區分大小寫的MySQL數據庫
例如,如果我擁有第一個字母大寫的用戶名,此查詢將不起作用。
SELECT *
FROM users
WHERE username = 'test'
AND password = 'test'
我正在使用MySQL 5.5.27社區版。謝謝。
您整理設置爲ci
(不區分大小寫)只會影響你的數據,而不是列的搜索方式。 IIRC,列名區分大小寫,表名不是。
遵循數據庫的標準命名約定。
我不知道太多關於設置爲不區分大小寫的數據庫,但是你可以用較低的()
如:
SELECT * FROM users WHERE Lower(username) = 'test' AND lower(password) = 'test'
按照@mauris答案。 否則,你在PHP中使用用strtolower($用戶名)和
SELECT * FROM users WHERE LOWER(username) = 'test' AND password = 'test'
這是可行的,但是要注意它確實[表掃描(http://dev.mysql.com/doc/refman/5.5/en /how-to-avoid-table-scan.html),所以速度很慢。你可以在插入或查詢之前存儲一個規範化的表單(在php中使用'strtolower()')來利用索引。 – cbednarski