MySQLでフィールドのサイズ/長さでソートする方法


  1. LENGTH関数を使用したソート: フィールドの長さを取得するためにLENGTH関数を使用し、その結果を基準にソートします。
SELECT * FROM テーブル名 ORDER BY LENGTH(フィールド名) ASC;

上記の例では、昇順にフィールドの長さでソートしています。降順にソートする場合は、ASCDESCに変更してください。

  1. CHAR_LENGTH関数を使用したソート: LENGTH関数と同様に、CHAR_LENGTH関数を使用してフィールドの文字数を取得し、ソートします。
SELECT * FROM テーブル名 ORDER BY CHAR_LENGTH(フィールド名) ASC;
  1. バイト数でのソート: 文字セットがマルチバイト文字をサポートしている場合、フィールドのバイト数でソートすることもできます。UTF-8などの場合、1文字が3バイトなので、バイト数でのソートは文字数でのソートとは異なる結果になります。
SELECT * FROM テーブル名 ORDER BY LENGTHB(フィールド名) ASC;
  1. フィールドのサイズでのソート: フィールドのサイズ(バイト数)そのものを基準にソートするには、BINARY演算子を使用します。
SELECT * FROM テーブル名 ORDER BY BINARY フィールド名 ASC;

上記の例では、フィールド名をバイナリとしてソートしています。

これらの方法を使用して、MySQLでフィールドのサイズ/長さでソートすることができます。必要に応じて、昇順と降順のソートを切り替えることができます。