MySQLでORDER BY句を使ってカタカナ(半角全角無視)の値をソートする方法をまとめます。
完全に自分用メモみたいなものなので、もし同じくカタカナ五十音ソートしたい方の参考になれば幸いです。
カタカナソートに対応させるためズバリ答えのSQL文
select * from users order by cast(kana as char) collate utf8mb64_unicode_ci asc;
ポイントになるのは2点で、ソートの対象とするカラム「kana」をchar型にCASTする点が一つ。
もう一点は、「kana」の称号順序をutf8mb64_unicode_ciにしてあげることです。
僕の場合、基本的に文字コードはutf8mb64_general_ciに統一しているため、今回はSQL文の中でSQL実行時にutf8mb64_unicode_ciの称号順序で値を取得してあげるようにしました。
照合順序が違うことで正しく五十音順でデータを取得できなくなりますので、ここんとこ注意です。
参考サイト
MySQL 日本語(マルチバイト)文字をソート(ORDER BY)する
mysqlでカナでソートしたら濁音の並びがおかしかったので対策