さまざまな制限により、MySQL データベースでは数値が VARCHAR データ型で格納されることがあります。ただし、これらの値に基づいてデータを並べ替える場合、文字が数値より優先されるため、数値が正しく並べ替えられません。
この問題を解決するには、次の構文を使用して文字列値を明示的に整数に変換します。
<code class="language-sql">SELECT col FROM yourtable ORDER BY CAST(col AS UNSIGNED)</code>
この変換により、データベースは値を整数として扱うようになり、正しい数値順序が保証されます。
代わりに、文字列を暗黙的に整数に変換する数学演算を使用することもできます。例:
<code class="language-sql">SELECT col FROM yourtable ORDER BY col + 0</code>
この場合、0 を追加すると MySQL は数値変換を強制的に実行します。
MySQL は文字列を左から右に変換することに注意してください。数字以外の文字を含む文字列、または数字以外の文字で始まる文字列は 0 に変換され、不正な並べ替えが発生します。したがって、文字列値には数字のみが含まれていることを確認する必要があります。
以上がMySQL に文字列として保存されている数値を正しく並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。