簡體   English   中英

如何區分SELECT查詢中的大寫或小寫單詞

[英]How to differ between a upper or lower case words in a SELECT query

基本上我覺得問題很簡單。 但無法找到任何解決方案。

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

似乎是問題出在我登錄ex時。

用戶:mm

通過:oo

這樣可行。 這是正確的,因為它們在db表上。

但現在,如果我使用

用戶:MM

通過:oo

仍然有效? 哪個不應該。 由於我的數據庫只有'mm'而不是'MM'。 我需要它來區分上,下字母,因為在其他行中我混合了上,下字母

您必須將列的排序/編碼從“不區分大小寫”的編碼更改為區分大小寫的編碼,例如utf8_general_cslatin1_general_cs

您需要使用區分大小寫的編碼

10.1.2開始。 MySQL中的字符集和排序規則

排序規則名稱有一個約定:它們以與它們相關聯的字符集的名稱開頭,它們通常包含語言名稱,它們以_ci(不區分大小寫),_ cc(區分大小寫)或_bin(二進制)結尾)。

因此請區分大小寫,例如utf8_general_cslatin1_general_cs

您可以使用查詢更新表:

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表明它不區分大小寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM