ホームページ >データベース >mysql チュートリアル >ORDER BYを使用せずに事前定義された順序でSQLクエリ結果を取得するにはどうすればよいですか?
事前定義された順序でクエリ結果を返す
SQL では、通常、ORDER を使用して指定しない限り、クエリ結果を特定の順序で取得するのが困難です。 BY句。ただし、特定のフィールドの値のみに基づいて所定の順序でデータを取得しようとする場合など、シナリオによっては ORDER BY 句が適用できない場合があります。
最近の議論では、次のようなシナリオが取り上げられました。 ID (7、2、5、9、および 8) を選択し、追加の基準に依存せずにその正確な順序で取得したいと考えています。次のクエリは両方とも、予測できない順序で結果を返します:
SELECT id FROM table WHERE id in (7,2,5,9,8);
SELECT id FROM table WHERE id in (8,2,5,9,7);
この問題にエレガントに対処する新しい解決策がブログ エントリで発見されました:
SELECT id FROM table WHERE id in (7,2,5,9,8) ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
The FIND_IN_SET関数は、指定されたセット内の指定された値の位置を返すために使用されます。たとえば、ID 7 の位置は 1、ID 2 の位置は 2 などとなります。
FIND_IN_SET を使用して ORDER BY 句を適用すると、ORDER BY ステートメントは位置を理解し、結果を効果的に順序付けします。指定された値に基づいて。このソリューションは、MySQL の内部メカニズムを活用して、目的の事前定義された順序を実現します。
この手法は、ORDER BY 句を使用して目的の順序を指定できない場合に、貴重な代替手段となる可能性があることは注目に値します。
以上がORDER BYを使用せずに事前定義された順序でSQLクエリ結果を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。