ホームページ > データベース > mysql チュートリアル > MySQL の「IN」クエリで結果の順序を保証するにはどうすればよいですか?

MySQL の「IN」クエリで結果の順序を保証するにはどうすればよいですか?

DDD
リリース: 2024-12-26 04:36:09
オリジナル
546 人が閲覧しました

How Can I Guarantee Result Order in MySQL's `IN` Queries?

MySQL "IN" クエリでの順序の維持

MySQL クエリで結果をフィルタリングするために "IN" 演算子を使用する場合、結果は、「IN」句で指定された値の順序と必ずしも一致しない場合があります。これは、MySQL がデフォルトでは結果の順序を保証しないためです。

「IN」クエリで結果の順序を維持するには、次のアプローチを使用できます:

FIELD 関数の使用

FIELD 関数を使用すると、結果の順序を指定できます。カンマで区切られた値のリストを 2 番目の引数として受け取り、リスト内で一致する値の位置を返します。たとえば、次のクエリは、「IN」句で指定された順序で結果を返します。

SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
ログイン後にコピー

FIELD への引数リストは可変長にすることができ、必要な数の値を指定できます。

注:

ORDER BY FIELD メソッドは、値が次のような単純なクエリに対して機能します。 「IN」句の内容は事前にわかっています。ただし、値が動的である場合、または別のデータ ソースから取得された場合、この方法は適切ではない可能性があります。

以上がMySQL の「IN」クエリで結果の順序を保証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート