MySQL: IN() 仕様の順序による結果のソート
IN() 句を使用してデータを取得する場合、その順序は維持されます。値を指定すると、出力の読みやすさと使いやすさが向上します。この記事では、IN() 関数内の値のシーケンスに基づいて結果を並べ替えるソリューションを検討します。
次のクエリについて考えてみましょう。
このクエリは次の出力を返します。行の順序が IN() 句の順序と一致しません:
| ID | 名前 |
^--------^-----------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | E |
| 17 | E |
| 9 | C |
| 18 | C |
IN() 句で指定された順序で結果を並べ替えるには、FIELD 関数を利用できます。 FIELD 関数は、最初の引数として値を受け取り、残りの引数リスト内のその値の位置を返します。
次のクエリは、FIELD 関数を使用して、「名前」の位置に基づいて結果を並べ替えます。リスト内の列の値 ('B'、'A'、'D'、'E'、'C'):
このクエリは次を返します。出力:
| ID | 名前 |
^--------^-----------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | E |
| 17 | E |
| 9 | C |
| 18 | C |
ご覧のとおり、行は元々 IN() 句で指定されていた順序で並べられています。
以上がIN() 句で指定された順序で MySQL 結果を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。