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”函数 –