コンテンツへスキップ

MySQLのORDER BY句を使ってカタカナ五十音順にソートする方法

  • 未分類

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でカナでソートしたら濁音の並びがおかしかったので対策

タグ: