我如何可以使用語句時訂購的結果我得到的數組中ID的順序:PHP MySQL的排序結果拿來
SELECT ID,名稱從表WHERE ID IN(23, 33,55,2)
我想:
+----+---------+
| id | name |
+----+---------+
| 23 | name1 |
| 33 | name2 |
| 55 | name3 |
| 2 | name4 |
+----+---------+
順序
我如何可以使用語句時訂購的結果我得到的數組中ID的順序:PHP MySQL的排序結果拿來
SELECT ID,名稱從表WHERE ID IN(23, 33,55,2)
我想:
+----+---------+
| id | name |
+----+---------+
| 23 | name1 |
| 33 | name2 |
| 55 | name3 |
| 2 | name4 |
+----+---------+
順序
你可以嘗試這樣的事:
SELECT t.id,t.name
from
(select 23 as id,1 as rnk union all
select 33 as id,2 union all
select 55 as id,3 union all
select 2 as id,4)input
join table t
on t.id=input.id
order by input.rnk
你可以嘗試使用JOIN。不保證按此順序返回,但對於MySQL,大多數情況下都適用:
SELECT table.id, table.name
FROM (
SELECT 23 id UNION SELECT 33 id UNION SELECT 55 id UNION SELECT 2
) a
JOIN table
ON a.id = table.id
您的訂單如何確定?如果你可以提供排序功能,那麼它很容易。
SELECT ID,從表名WHERE ID IN(23,33,55,2)按字段(ID,2,23,33,55)
只是爲了澄清,他試圖實現的是對CSV的CSV列表進行排序。因此,例如'(23,33,55,2)'和'(2,55,33,23)'將按順序返回ID。不僅僅是通過id desc/asc進行排序。 –