クエリ結果の順序の保持: 解決策
MySQL では、特定のフィールドの値に依存せずに特定の順序でデータを取得できます。挑戦的。次のシナリオを考えてみましょう: 結果としてこの正確な順序を維持しながら、ID 7、2、5、9、および 8 を選択します。
提供された例に示されているように、IN 句を使用する従来のアプローチでは、これが保証されません。希望の順序。ただし、FIND_IN_SET 関数を利用する興味深いソリューションが登場しました。
SELECT id FROM table WHERE id in (7, 2, 5, 9, 8) ORDER BY FIND_IN_SET(id, "7,2,5,9,8");
このクエリは、各 ID にシーケンス「7,2,5,9,8」内の位置を効果的に割り当てます。 FIND_IN_SET 関数は、指定されたシーケンス内の ID の位置を返します。たとえば、ID 7 は位置 1 にあり、ID 2 は位置 2 にあり、以下同様です。
FIND_IN_SET の出力によって結果を並べ替えることにより、クエリは取得された ID が指定された順序と一致していることを確認します。 2 番目の引数。この複雑なソリューションにより、開発者はクエリ結果に所定の順序を課すことができ、データ操作の新たな可能性が広がります。
以上がMySQL でフィールドの値に依存せずに特定の順序でデータを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。