2013-03-17 56 views
2

基本上我覺得問題很簡單。但無法找到任何修復。如何區分SELECT查詢中的大寫或小寫單詞

在登錄表單中,我使用php來查詢我的數據庫,該數據庫通過從數據庫表中選擇具有該2值的任何行,檢查傳遞的用戶名和密碼。

什麼似乎是問題是當我登錄前。

用戶:毫米

通:OO

工程。這是正確的,因爲他們在數據庫表。

但現在如果我使用

用戶:MM

通:OO

仍然有效?這不應該。因爲我的分貝只有用戶'毫米'而不是'MM'。 我需要它,因爲其他行上下 區分我有一個上限較低字母

混合

回答

5

你必須給列的排序規則/編碼從「不區分大小寫」編碼的改變大小寫敏感的,如utf8_general_cslatin1_general_cs

+0

太棒了....謝謝。 – 2013-03-17 02:22:00

1

你需要使用大小寫敏感的編碼

10.1.2. Character Sets and Collations in MySQL

沒有爲collat​​i公約名稱:它們以與它們相關聯的字符集的名稱開頭,它們通常包含語言名稱,它們以_ci(不區分大小寫),_cs(區分大小寫)或_bin(二進制)結尾。

所以使用大小寫敏感像utf8_general_cslatin1_general_cs

+0

感謝所有的答案在哪裏。 :)但不得不接受第一個答覆 – 2013-04-02 00:02:32

+0

@MoAdel沒有問題,它完全正確 – 2013-04-02 02:27:54

1

您可以更新使用查詢表:

ALTER TABLE `your_table` CHARSET=latin1 COLLATE=latin1_general_cs; 

凡說latin1_general_cs,則cs指定它是區分大小寫的。如果你希望它不要成爲情況下,在未來的敏感,你可以只使用此查詢:

ALTER TABLE `your_table` CHARSET=latin1 COLLATE=latin1_general_ci; 

ci spcifies,這是不區分大小寫。

+0

thanksfor指出ci和cs部分..所有的答案我得到了right.but必須接受第一個答覆 – 2013-04-02 00:03:10