MySQL で Varchar フィールドを数値的に並べ替える
varchar フィールドに文字列として保存されている数値を並べ替える際に問題が発生しましたか? MySQL では、辞書順ソートにより、「42」のような値が「9」より前に来るという予期せぬ結果が生じる可能性があります。
問題への対処
これを解決するには、並べ替える前に、varchar フィールドを符号付き整数として明示的にキャストするクエリ。この変換により、値が強制的に数値表現に変換され、正しい数値の並べ替えが容易になります。
変更されたクエリ:
元のクエリを次の変更されたバージョンに置き換えます:
SELECT * FROM table ORDER BY CAST(number as SIGNED INTEGER) ASC
を理解するCast:
CAST() 関数は、数値フィールドを varchar から符号付き整数に変換します。これにより、MySQL が値を文字データではなく数値として扱うようになります。
昇順ソート順序:
order by 句で ASC を指定することで、MySQL にソートを指示します。結果は昇順で表示されます。これは、最小の数値が最初に表示されることを意味します。
この変更されたクエリを実装すると、varchar フィールドを数値的に効果的に並べ替えることができ、「9」のような値が「42」より前に来るようになります。
以上がMySQL で VARCHAR フィールドを数値的にソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。