44

ランダム化ステップがあるため、クエリを実行するまでわからない、注文するアイテムの固定リストがあります。

次のようなものが欲しいです:

1、3、7、11 をis_launch_set返すが、以下にランダム化されていると仮定します。

SELECT * FROM items WHERE is_launch_set=1 ORDER BY id values (3,11,7,1);

これを達成する方法についてのアイデアはありますか?たぶんと思っていましたfind_in_setが、よくわかりません。

4

2 に答える 2

96

次のいずれかを使用してそれを行うことができます。

ORDER BY FIND_IN_SET(id, '3,11,7,1')

また

ORDER BY FIELD(id, 3, 11, 7, 1)

また

ORDER BY CASE id WHEN 3 THEN 0
                WHEN 11 THEN 1
                 WHEN 7 THEN 2
                 WHEN 1 THEN 3
                        ELSE 4
         END
于 2012-06-07T21:54:45.427 に答える