2011-03-29 27 views
1

我想使用WHERE語句進行搜索,但不區分大小寫。我被告知我可以使用LCASE(),但是我將如何使用以下方法來做到這一點?LCASE where search

mysql_query("SELECT * FROM table WHERE fieldt = '" .$_POST['thisf']. "'"); 
+1

僅供參考:此代碼不受SQL注入的保護。 – 2011-03-29 14:47:32

+0

@丹尼爾:我知道這一點。這只是一個例子。 – 2011-03-29 14:53:39

+0

您可以將列設置爲不區分大小寫,因此您不必執行任何lcaseing – dqhendricks 2011-03-29 15:09:47

回答

1

你就可以欺騙它witht使兩者(場和所需的數據):

mysql_query("SELECT * FROM table WHERE UCASE(fieldt) Like UCASE('" .strtoupper($_POST['thisf']). "')"); 
+0

不,仍然區分大小寫。 – 2011-03-29 14:52:58

+0

@gdscei - 'LIKE'使其不敏感。 – 2011-03-29 14:54:46

+0

嘗試過,仍然敏感。 – 2011-03-29 15:04:59

0

假設我沒有介紹一堆語法錯誤:在上/戀人情況下

mysql_query("SELECT * FROM table WHERE lcase(fieldt) = lcase('" .$_POST['thisf']. "')"); 
+0

不,仍然區分大小寫。 – 2011-03-29 14:53:18

+0

@gdscei:你正在測試什麼字符集(和特定字符)? – 2011-03-29 14:56:53

+0

latin1_swedish_ci,並且沒有特殊字符,而是簡單的大寫/小寫字母和/或數字。 – 2011-03-29 15:04:26