2014-02-11 105 views
0

今天我被我們的QA報告了一個困惑的問題,我們的應用程序的登錄功能忽略了大小寫的情況,並且通過調試後端代碼,我發現以下SQL腳本運行時具有相同的結果(我們的數據庫只有一個名字爲' duno「):爲什麼MySQL忽略查詢關鍵字值的大小寫?

SELECT * FROM T_USER WHERE username = 'duno';

SELECT * FROM T_USER WHERE username = 'DUNO';

以上2 SQL腳本運行與相同的用戶記錄。我只是對此感到困惑,MySQL需要我做什麼特殊設置?或其他原因?

在此先感謝。

回答

0

默認情況下,mysql查詢不區分大小寫。

要使它區分大小寫使用BINARY Keyword

SELECT * FROM T_USER WHERE BINARY username = 'duno'; 


或者

除了使用=運營商,您使用LIKE操作

SELECT * FROM T_USER WHERE username LIKE 'duno'; 
+1

感謝您的回答。 –

+0

@BradyChu歡迎開心幫忙:) –

0

默認情況下的MySQL不區分大小寫的搜索。您可以更改查詢或表格定義以使搜索區分大小寫。在MySQL文檔Case Sensitivity in String Searches中閱讀更多關於它的內容。

+0

感謝您的回答。 –