初期クエリ試行:
並べ替えを試みる次のクエリを考えてみましょう。文字列長によるデータ:
<code class="sql">SELECT * FROM table ORDER BY string_length(column);</code>
ただし、このクエリではエラーが発生します。 MySQL には string_length 関数が存在しますが、データの並べ替えには使用できません。
解決策: CHAR_LENGTH() を使用する
文字列の長さでデータを並べ替えるには、次のようにします。 CHAR_LENGTH() 関数を使用する必要があります。 string_length とは異なり、CHAR_LENGTH() はバイト数ではなく、文字列内の文字数を返します。
更新されたクエリ:
<code class="sql">SELECT * FROM table ORDER BY CHAR_LENGTH(column);</code>
の違いLENGTH() と CHAR_LENGTH()
マルチバイト文字セット (UTF-8 など) の場合、LENGTH() は文字列内のバイト数を返し、CHAR_LENGTH() は文字列内のバイト数を返します。文字数。したがって、マルチバイト文字セットの場合、正確な文字列長を計算するには CHAR_LENGTH() を使用する必要があります。
以上がMySQL で文字列の長さによってデータをソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。