ホームページ >データベース >mysql チュートリアル >WHERE IN 句を使用して SQL クエリの行順序を維持する方法

WHERE IN 句を使用して SQL クエリの行順序を維持する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-30 03:34:281020ブラウズ

How to Maintain Row Order in SQL Queries with WHERE IN Clause?

WHERE IN 句による行順序の制御

WHERE IN 句を利用する構造化照会言語 (SQL) ステートメントでは、返される行が常に順序に従っているとは限りません。

FIELD() 関数による行の順序の保持

これを修正するには、FIELD() 関数を ORDER BY 句と組み合わせて使用​​します。 FIELD() 関数は、IN 句内の指定された値の順序に基づいて各行に位置を割り当てます。この割り当てられた位置に従って行を並べ替えることで、WHERE IN 句の元の順序を維持できます。

たとえば、次の SQL クエリを考えてみましょう。

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72);

このクエリは、 WHERE IN 句で指定された順序を無視して、ID 列に基づいて行を昇順で並べます。 IN 句で指定された順序で行を取得するには、次のクエリを実行します。

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72)
ORDER BY FIELD(id, 118, 17, 113, 23, 72);

このクエリでは、ORDER BY 句が値の順序 (118、17、 113、23、72) は FIELD() 関数で指定されます。したがって、返される行は、WHERE IN 句で定義されたシーケンスに従います。

以上がWHERE IN 句を使用して SQL クエリの行順序を維持する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。