ホームページ >データベース >mysql チュートリアル >MySQL で複雑なバージョン番号をソートするには?
MySQL のバージョン番号の並べ替え
MySQL でのバージョン番号の並べ替えは、特に 1.1.2、9.1 などの複雑な形式を扱う場合に困難になることがあります。 、および2.2。標準の order by version_number 構文を使用すると、多くの場合、不正確な結果が得られます。
この問題に対処するには、INET_ATON 関数を使用した賢明な回避策を採用できます。
SELECT version_number FROM table ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(version_number,'.0.0.0'),'.',4))
このトリックは、INET_ATON に依存して変換します。バージョン番号を IP アドレス形式に変換することで、値を数値的に並べ替えることができます。具体的には、「0.0.0」を追加して各行に少なくとも 4 つの部分があることを確認し、SUBSTRING_INDEX を使用して最初の 4 つの部分のみを抽出して並べ替えます。
この回避策は希望する並べ替え順序を提供しますが、列に対する関数呼び出しが含まれるため、インデックスを使用する場合に比べて並べ替えプロセスが遅くなる可能性があることに注意することが重要です。
より複雑なバージョン番号形式の場合は、専門家が推奨する別のアプローチは、バージョン番号の各部分に個別の列を作成し、代わりにそれらの列に基づいて並べ替えることです。これにより、並べ替えでインデックスを活用し、パフォーマンスが向上することが保証されます。
以上がMySQL で複雑なバージョン番号をソートするには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。