MySQL 英数字データの自然な並べ替えの最適化
自然な並べ替えアルゴリズムは、文字列に埋め込まれた数値に適応して、人間に優しい数値順にデータを配置するように設計されています。 MySQL では、この並べ替え動作を実装するのは困難な場合があります。
この問題を解決するために、ゲーム タイトルをそのコンポーネント部分 (タイトル、番号、サブタイトル) に手動で解析するという複雑でエラーが発生しやすいタスクを回避する、洗練されたソリューションを提案します。代わりに、シンプルかつ効率的なクエリ
を使用します。<code class="language-sql">SELECT alphanumeric, integer FROM sorting_test ORDER BY LENGTH(alphanumeric), alphanumeric</code>
このクエリは 2 つの重要な原則を活用しています:
したがって、クエリはゲーム データの望ましい自然な順序を生成します。つまり、「ファイナルファンタジー 10」は「ファイナルファンタジー 4」の後に正しく表示され、「ファイナルファンタジー 12」は「ファイナルファンタジー 12: プロメテア」チェーンの前の後に表示されます。このソリューションはエレガントかつ堅牢であり、追加の解析ロジックなしでウォーハンマー 40,000 やジェームズ ボンド 007 などのエッジ ケースを処理します。
以上がMySQL はどのようにして手動解析を行わずに英数字データの自然な並べ替えを実現できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。