私は次のクエリを持っています
SELECT * FROM table WHERE id IN (5,4,3,1,6)
「idin..」で指定された順序で要素を取得したいので、次を返す必要があります。
5 ....
4 ....
3 ....
1 ....
6 ....
それを行う方法はありますか?
FIELD()を使用します:
SELECT * FROM table WHERE id IN (5,4,3,1,6) ORDER BY FIELD(id, 5,4,3,1,6);
SELECT * FROM table WHERE id IN (5,4,3,1,6) ORDER BY FIELD (id, 5,4,3,1,6)
誰かがまだ検索している場合は、私はそれを見つけました。
SELECT * FROM `table` WHERE `id` IN (4, 3, 1) ORDER BY FIELD(`id`, 4, 3, 1)
そして、あなたがここで見つけることができる関数のリファレンス
IDごとにIDを作成する必要があります。
id | otherid
1 = 5 2 = 4 3 = 3 4 = 1 6 = 6
IN STATEMENTを使用すると、それらの値がリストにあるかどうかを確認するだけで、特定の順序にはなりません。