MySQL バージョン番号を効果的に並べ替える
MySQL で varbinary(300) として保存されたバージョン番号を扱う場合、正確な並べ替え順序を取得することができます。挑戦的。よく使用されるクエリ「select version_number from table order by version_number asc」では、多くの場合、望ましい結果が得られません。
この並べ替えの難問に対する効果的な解決策の 1 つは、INET_ATON 関数を活用することです。次のクエリを使用すると、希望する並べ替え順序を実現できます:
SELECT version_number FROM table ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(version_number,'.0.0.0'),'.',4))
この手法では、INET_ATON 関数を利用して IP アドレスを数値形式に変換します。 CONCAT 関数を使用してバージョン番号を「.0.0.0」と連結することで、各行に少なくとも 4 つの部分が含まれるようになります。次に、SUBSTRING_INDEX 関数は、INET_ATON 関数の魔法を実行するために最初の 4 つの部分を抽出します。
このアプローチでは、並べ替えに列自体ではなく関数が利用されることに注意することが重要です。したがって、インデックス付き列での並べ替えよりも遅くなる可能性があります。パフォーマンスが重要な場合は、@spanky が提案するように、別の列アプローチを使用することを検討してください。
以上がVarbinary(300) として保存された MySQL バージョン番号を効果的にソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。