アクセントを区別する MySQL 検索: 総合ガイド
アクセント記号の区別は、特に発音記号を含む文字を検索する場合に、MySQL クエリで問題を引き起こす可能性があります。この記事では、MySQL におけるアクセントを区別するクエリの微妙な違いを調査し、実用的な解決策を提供します。
アクセントを区別しないクエリの問題
UTF-8 テーブル内の 2 つのエントリについて考えてみましょう。 :「アバド」と「アバード」。 「abád」を検索するクエリでは、デフォルトの照合順序でアクセントが区別されないため、「abad」が返される場合もあります。
ソリューション
1。列の照合順序
アクセントの区別を保証するには、アクセント付き文字とアクセントなし文字を区別する照合順序を指定します。例:
ALTER TABLE words MODIFY `word` VARCHAR(10) COLLATE utf8_bin;
2. BINARY 演算子
アクセント付きの単語の完全一致を検索する場合は、BINARY 演算子を使用します:
SELECT * FROM `words` WHERE BINARY `word` = 'abád';
3。 COLLATE 句
MySQL 8.0 以降では、COLLATE 句を使用して比較のための特定の照合順序を指定できます:
SELECT * FROM `words` WHERE `word` = 'abád' COLLATE utf8mb4_bin;
4。言語固有の照合順序
言語で特定のアクセント処理が必要な場合は、utf8_polish_ci や latin1_swedish_ci などの言語固有の照合順序の使用を検討してください。
補足事項
これらのソリューションを実装することで、MySQL クエリで必要なアクセントの区別を実現し、アクセント付き文字の正確な検索結果を保証できます。
以上がMySQL でアクセントを区別した検索を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。