在MySQL中,我有SQL像MySQL的排序中選擇。在聲明中
select id from user where id IN (2, 3, 1);
但MySQL的返回行作爲1,2,3,是否有可能強制MySQL返回相同的順序爲我原始訂單2,3,1?
謝謝。
在MySQL中,我有SQL像MySQL的排序中選擇。在聲明中
select id from user where id IN (2, 3, 1);
但MySQL的返回行作爲1,2,3,是否有可能強制MySQL返回相同的順序爲我原始訂單2,3,1?
謝謝。
可以使用FIELD
功能:
select id from user where id IN (2, 3, 1) ORDER BY FIELD(id, 2, 3, 1);
不錯。領域得到廣泛支持嗎?首先我聽說過它。 – 2011-03-18 15:40:45
MS SQL方法,儘管不如此漂亮:http://stackoverflow.com/questions/3892406/what-is-the-ms-sql-server-capability-similar-to-the-mysql-field-function – squillman 2011-03-18 15:49:41
我只是找到這個鏈接http://imthi.com/blog/programming/mysql-order-by-field-custom-field-sorting.php – 2011-03-18 16:00:42
,你也可以訂購通過LOCATE這樣的:
SELECT
`id`
FROM
`user`
WHERE
`id` IN(2, 3, 1)
ORDER BY
LOCATE(`id`, "2 3 1")
菲利克斯
對於便攜式代碼,使用CASE/WHEN
。它受所有(主要)dbms支持。
order
by case when id = 2 then 1
when id = 3 then 2
when id = 1 then 3
end
是購買你真正想要的,或者是在現實中的排序由另一列,這僅僅是一個簡單的例子? – 2011-03-18 15:41:35