0

クエリは次のとおりです。

SELECT * 
  FROM table
 WHERE id = 1
    OR id = 100
    OR id = 50

1,100,50 の順に ID を指定したことに注意してください。

行が 1,100,50 の順序で返されるようにします。

現在、私は 1,50,100 - 基本的に昇順で戻ってきます。テーブルの行も昇順で挿入されたとします。

4

5 に答える 5

3

MySQL固有のFIND_IN_SET関数を使用します。

  SELECT t.* 
    FROM table t
   WHERE t.id IN (1, 100, 50)
ORDER BY FIND_IN_SET(CAST(t.id AS VARCHAR(8)), '1,100,50')
于 2013-01-31T03:15:38.227 に答える
2

これにアプローチする別の方法は、リストをサブクエリに入れることです。

select table.*
from table join
     (select 1 as id, 1 as ordering union all
      select 100 as id, 2 as ordering union all
      select 50 as id, 3 as ordering
     ) list
     on table.id = list.id
order by list.ordering
于 2013-01-31T03:01:29.553 に答える
0

あなたはこれを行うことができますORDER BY

ORDER BY
   id = 1 DESC, id = 100 DESC, id = 50 DESC

0中古品1ですORDER BY

于 2013-01-31T02:54:24.173 に答える
0

これを試して

SELECT * 
FROM new
WHERE ID =1
OR ID =100
OR ID =50
ORDER BY ID=1 DESC,ID=100 DESC,ID=50 DESC ;

http://www.sqlfiddle.com/#!2/796e2/5

于 2013-01-31T03:03:05.113 に答える
0

... WHERE id IN (x,y,x) ORDER BY FIELD (id,x,y,z)

于 2013-01-31T07:30:43.593 に答える