0
有沒有辦法通過輸入數組來排序查詢結果?排序方式?哪裏col IN數組
SELECT * FROM target_table WHERE id IN (4,2,6,1) ORDER BY ???
由輸入數組(4,2,6,1)必要
正如你可能會注意到這會給你在target_table ID的結果順序,沒有,有沒有解決此問題的方法?
有沒有辦法通過輸入數組來排序查詢結果?排序方式?哪裏col IN數組
SELECT * FROM target_table WHERE id IN (4,2,6,1) ORDER BY ???
由輸入數組(4,2,6,1)必要
正如你可能會注意到這會給你在target_table ID的結果順序,沒有,有沒有解決此問題的方法?
您可以重複陣列中的order by
:
SELECT *
FROM target_table
WHERE id IN (4, 2, 6, 1)
ORDER BY field(id, 4, 2, 6, 1);
如果你只是想一次列出的數字,你可以把值在select
列表,並使用having
:
SELECT t.*, field(id, 4, 2, 6, 1) as ival
FROM target_table t
HAVING ival > 0
ORDER BY ival;
可能MySQL中的ORDER BY值的重複(http://stackoverflow.com/questions/958627/mysql-order-by-values-within-in) – MarcinJuraszek
嘗試使用「FIELD」函數 –