事前定義された順序でクエリ結果を返す
SELECT ステートメントを実行するときは、特定の順序でレコードを取得することが望ましいことがよくあります。ただし、デフォルトでは、MySQL はテーブルの内部構成に基づいて任意の順序で結果を返します。
このデフォルトの動作をオーバーライドし、事前定義された順序で結果を返すために、MySQL は FIND_IN_SET() 関数を使用するメソッドを提供します。この関数は、検索文字列と値のセットという 2 つの引数を取ります。セット内の検索文字列の位置を返します。文字列が見つからない場合は 0 を返します。
FIND_IN_SET() を利用すると、SELECT ステートメントを実行して、結果の希望の順序を指定できます。たとえば、ID 7、2、5、9、8 のレコードを特定の順序で取得するには:
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
ID 値は、WHERE 句に出現する順序に関係なく、FIND_IN_SET() の 2 番目の引数で指定された順序で返されます。
この手法は、クエリ結果の順序を制御する強力な方法を提供します。基になるテーブルに明示的に定義された並べ替え順序がない場合でも。
以上がFIND_IN_SET() を使用して MySQL クエリの結果を事前定義された順序で返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。