MySQL LIKE 查詢中的大小寫敏感
問題:
問題:
SELECT concat_ws(title, description) as concatenated HAVING concatenated LIKE '%SearchTerm%';考慮以下查詢:
儘管使用了LIKE運算符,但當使用 MyISAM 儲存引擎的表格編碼為 utf8_general_ci 時,搜尋似乎區分大小寫。
說明:MyISAM 儲存引擎對以 utf8_general_ci 編碼儲存的字串使用不區分大小寫的比較。但是,LIKE 運算子預設執行區分大小寫的比較。
最佳解:SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';要執行不區分大小寫的比較,請使用BINARY 關鍵字,如下所示:
當其中一個運算元是二進位字串時,字串比較將區分大小寫。
替代解決方案:SELECT .... FROM .... WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;或者,使用COLLATE 語句指定特定於區域設定的排序規則:此方法允許在保持原始字元編碼的同時進行不區分大小寫的比較。
以上是為什麼 MySQL LIKE 查詢使用 utf8_general_ci 編碼區分大小寫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!