1. ホーム
  2. mysql

MySql でアクセントセンシティブ検索を行う方法

2023-10-27 18:47:34

質問

私は、utf8 の一般的な ci 照合順序を持つ MySQL テーブルを持っています。テーブルでは、2つのエントリが表示されます。

abad

アバド

以下のようなクエリを使っています。

SELECT *  FROM `words` WHERE `word` = 'abád'

クエリの結果、両方の単語が得られます。

アバド

アバド

MySQL にアクセント記号付きの単語のみを検索させる方法はありますか?私は、クエリが

abád

このクエリも試してみました。

SELECT *  FROM `words` WHERE BINARY `word` = 'abád'

結果が出ません。助けてくれてありがとうございます。

どのように解決するのですか?

そのフィールドの検索が常にアクセントに敏感である場合、フィールドの照合順序を utf8_bin として宣言するか(utf8-エンコードされたバイトを等しく比較します)、アクセント付きの文字とアクセントなしの文字を区別する言語固有の照合順序を使用するようにしてください。

col_name varchar(10) collate utf8_bin

通常、検索はアクセントを区別しないが、この検索では例外としたい場合、試してみてください。

WHERE col_name = 'abád' collate utf8_bin