2011-01-31 34 views
1

如何在MySQL中搜索小寫字母?確保搜索小寫字符

我有以下

$sql = "SELECT * FROM TABLE_NAME WHERE column LIKE '%$search%'"; 

如何確保在「列」中的值匹配小寫?

回答

5

你要麼你列的排序規則設置爲區分大小寫的一個,像UTF8_BIN,或進行額外的檢查,在過濾器:

SELECT * 
FROM table_name 
WHERE column LIKE '%$search$%' 
     AND column COLLATE UTF8_BIN = LOWER(column COLLATE UTF8_BIN) 

需要注意的是,如果你的排序規則是不區分大小寫的,像UTF8_GENERAL_CI,那麼以下查詢:

SELECT LOWER('A') = ('A') 

將返回true。在進行比較之前,您應該明確地強制列不區分大小寫。

1

假設我解釋正確,使用MySQL LOWER()功能:

$sql = "SELECT * FROM TABLE_NAME WHERE LOWER(column) LIKE '%$search%'"; 

這一切都將轉換成column測試它針對搜索值之前爲小寫。

+1

如果使用不區分大小寫的排序規則(並且問題事實暗示它),這將無濟於事。 – Quassnoi 2011-01-31 17:15:53