列(またはテーブル)の文字セットを変更できる場合は、それをutf8_general_ci
に設定します。 (マニュアルへのリンク
):
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;
この文字セットでは(_ci
で示されるように、大文字と小文字は区別されません) )、アクセント付き文字の重みは同じです(に使用される値)照合
)、したがって、互いに比較するとtrueを返します(マニュアルへのリンク
):
mysql> SET NAMES 'utf8' COLLATE 'utf8_general_ci';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT 'a' = 'A', 'a' = 'À', 'a' = 'á';
+-----------+-----------+-----------+
| 'a' = 'A' | 'a' = 'À' | 'a' = 'á' |
+-----------+-----------+-----------+
| 1 | 1 | 1 |
+-----------+-----------+-----------+
1 row in set (0.06 sec)
または、この方法でデータベース構成を変更できない場合は、アクセント付きの文字をアクセントなしの同等の文字(é
)に置き換える関数を作成できます。 -> e
)これを専用の検索フィールド( full-テキスト検索
フィールドをお勧めします)。このフィールドで検索を実行し、アクセントのあるフィールドをアプリケーションに返します。