ホームページ > データベース > mysql チュートリアル > 「varbinary(300)」として保存されている MySQL バージョン番号をソートするにはどうすればよいですか?

「varbinary(300)」として保存されている MySQL バージョン番号をソートするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-10 00:18:02
オリジナル
290 人が閲覧しました

How to Sort MySQL Version Numbers Stored as `varbinary(300)`?

MySQL バージョン番号の並べ替え

MySQL でバージョン番号を varbinary(300) として保存する場合、version_number によるデフォルトの順序を使用して並べ替えると、結果が得られる場合があります。間違った結果。これを解決するには、並べ替えを容易にする INET_ATON 関数の利用を検討してください。

変更されたクエリ:

SELECT version_number 
FROM table 
ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(version_number,'.0.0.0'),'.',4))
ログイン後にコピー

この手法は、IP アドレスを表す文字列を数値に変換する INET_ATON 関数に依存しています。表現。 '.0.0.0' を version_number に連結することで、各バージョン番号に少なくとも 4 つのコンポーネントが含まれていることを確認し、SUBSTRING_INDEX を利用して抽出します。

最初の 4 つのコンポーネントの数値表現に基づいて並べ替えることにより、バージョン番号ごとに、希望の並べ替え順序が得られます。ただし、この並べ替えは関数に依存しているため、インデックスを使用して列を直接並べ替える場合と比較してパフォーマンスが低下する可能性があることに注意してください。

@spanky によって提案された別の解決策には、バージョン番号コンポーネントを分割することが含まれます。個々の列。たとえば、メジャー、マイナー、パッチ、ビルド バージョンの列を作成します。このアプローチにより、特定のコンポーネントを効率的に並べ替えることができますが、より複雑なデータ操作が必要になる場合があります。

以上が「varbinary(300)」として保存されている MySQL バージョン番号をソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート