ホームページ  >  記事  >  データベース  >  WHERE IN 句の順序に基づいて行を並べ替えるにはどうすればよいですか?

WHERE IN 句の順序に基づいて行を並べ替えるにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-27 12:40:03294ブラウズ

How to Order Rows Based on the Order in a WHERE IN Clause?

ORDER BY FIELD を使用した WHERE IN 句に従って行を並べる

データベース クエリでは、WHERE IN 句を使用して、次の条件に基づいてデータをフィルタリングできます。指定された値のリスト。ただし、デフォルトでは、返される行は句で指定した順序と異なる場合があります。

WHERE IN 句で指定された順序に従って行を並べるには、ORDER BY FIELD( ) 関数。この関数は 2 つの引数を取ります:

  • 行を並べ替える基準となるフィールド (この場合は ID フィールド)
  • WHERE IN からの値のカンマ区切りのリスト句

たとえば、次のクエリがあるとします。

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

これは、ID の昇順で行を返します。ORDER BY FIELD() 関数を使用して、 WHERE IN 句で指定された順序で行:

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

このクエリでは、ORDER BY FIELD() 関数は ID フィールドによって行を並べ替えますが、その順序は 118、17、113 です。

この手法を使用すると、WHERE IN 句で指定された順序に従って行を簡単に並べ替えることができ、行が目的の順序で返されるようにすることができます。

以上がWHERE IN 句の順序に基づいて行を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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