MySQL 中LIKE 的區分大小寫
在MySQL 中使用查詢「SELECT concat_ws(title,description) as concatenated 中使用查詢「SELECT concat_ws(title,description) as concatenated 執行LILIas concatenated連接LIKE '%SearchTerm%';",可能會注意到搜尋區分大小寫,即使表是使用utf8_general_ci 排序規則和MyISAM 儲存引擎進行編碼的。
此行為的原因是當任一運算元是二進位字串時,LIKE 運算子執行區分大小寫的比較。在這種情況下,「連接」欄位是一個二進位字串,導致搜尋區分大小寫。
要解決此問題並使搜尋不區分大小寫,建議使用BINARY 關鍵字和LIKE運算子:
SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';
這確保字串比較是按二進位執行的,忽略任何大小寫差異。
或者,COLLATE 關鍵字可以與utf8_bin 排序規則一起使用來使搜尋不區分大小寫:
SELECT .... FROM .... WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;
這兩種方法都有效地修改了搜尋行為,使其不區分大小寫,同時保留utf8_general_ci 排序規則的效能優勢。
以上是為什麼 MySQL 的 LIKE 運算子在使用二進位字串時區分大小寫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!