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

Susan Sarandon
發布: 2024-11-08 14:12:02
原創
1031 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板