twitter facebook

MySQLで大文字小文字、全角半角区別しないで検索・ソート

SELECT * FROM tbl WHERE name LIKE '%ヤマダ%' ;
これだと ~ヤマダ~ しかヒットしない
検索
SELECT * FROM tbl WHERE name collate utf8_unicode_ci like LIKE '%ヤマダ%' ;
これだと 半角やひらがな などにもヒットする。
並び替え
SELECT * FROM tbl ORDER BY name COLLATE utf8_unicode_ci ASC
order by 句に COLLATE utf8_unicode_ci をつければ、半角・全角区別しない並び替えができます。
COLLATION 'utf8_unicode_ci' は CHARACTER SET 'utf8mb4' に適用できません。 のエラーが出た場合は、COLLATE utf8mb4_unicode_ci にしてください。

collate(照合順序) のおさらい

utf8_general_ci
大文字・小文字を同一視。
mysqlのデフォルト。
utf8_unicode_ci
大文字・小文字、半角・全角を同一視。
AUTHOR
@SAWA
最終更新日 2018/09/17
FAVORITE good stock
LINK TAG
記法を見る