問題:ユーザーが%%
と入力すると、2つのパーセント記号を連続して含むテキストを検索します。アプリケーションはそれを条件... LIKE '%\\%\\%%'
に変換します。データベースが間違った結果を返します。国別文字が含まれていなくても照合がLIKE照合に影響するのはなぜですか?
私は、問題を照合に絞り込むことができました。いくつかのMySQLとMariaDBのバージョンでテストされていますが、以下の2つのクエリは異なって評価されます。 LIKE演算子と照合を読み込もうとしましたが、その違いを説明できるものは見つかりませんでした。
SELECT '%' COLLATE utf8_czech_ci LIKE '%\\%\\%%';
結果:TRUE
SELECT '%' COLLATE utf8_general_ci LIKE '%\\%\\%%';
結果:FALSE
[MySQL utf8 \ _czech \ _ci vs utf8 \ _general \ _ci](https://stackoverflow.com/questions/30639089/mysql-utf8-czech-cs-utf8-general-ci)の可能な複製 – bodi0
@ bodi0、おそらく、パーセント記号は、(少なくともチェコ語のアルファベットではない)どんな国のアルファベットにも関連していないのですか? –