[英]Ordering issue concerning numbers and letters in MYSQL SELECT statement
[英]MySQL ordering in Select .. In statement
在MySQL中,我喜歡SQL
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);
對於便攜式代碼,請使用CASE/WHEN
。 它受所有(主要)dbms支持。
order
by case when id = 2 then 1
when id = 3 then 2
when id = 1 then 3
end
您也可以通過LOCATE訂購,如下所示:
SELECT
`id`
FROM
`user`
WHERE
`id` IN(2, 3, 1)
ORDER BY
LOCATE(`id`, "2 3 1")
費利克斯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.