首頁  >  文章  >  資料庫  >  為什麼 MySQL 中使用 LIKE 運算子和 utf8_general_ci 編碼進行不區分大小寫搜尋時區分大小寫?

為什麼 MySQL 中使用 LIKE 運算子和 utf8_general_ci 編碼進行不區分大小寫搜尋時區分大小寫?

Susan Sarandon
Susan Sarandon原創
2024-11-08 14:12:021062瀏覽

Why is Case-Insensitive Searching in MySQL with LIKE Operator and utf8_general_ci Encoding Case-Sensitive?

MySQL 中不區分大小寫的搜尋

本文探討了MySQL 在具有utf8_SQLral_ci 編碼和MyISAM 儲存引擎的表中使用LIKE 運算符進行查詢的問題導致搜尋區分大小寫。

要解決此問題,有兩種建議的解決方案:

1.使用二進位字串:

透過將BINARY 關鍵字附加到LIKE 運算符,可以實現不區分大小寫的搜尋:

SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';

這種方法比其他方法表現更好,因為它強制使用二進製字串比較,使其更有效率。

2.使用COLLATE:

或者,COLLATE 關鍵字可用於指定特定的排序規則:

SELECT .... FROM .... WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;

透過使用utf8_bin 排序規則,強制執行不區分大小寫的比較。雖然此方法提供了更大的靈活性,但與二進位字串方法相比,它可能會對效能產生輕微影響。

以上是為什麼 MySQL 中使用 LIKE 運算子和 utf8_general_ci 編碼進行不區分大小寫搜尋時區分大小寫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn