【发布时间】:2018-08-28 04:30:25
【问题描述】:
我的查询是:
select * from table where id IN (1,5,4,3,2)
我想要的和这个顺序完全一样,不是从 1...5 而是从 1,5,4,3,2。 我该怎么做?
【问题讨论】:
-
自定义订单是什么意思?任何具体的
标签: mysql sql-order-by
我的查询是:
select * from table where id IN (1,5,4,3,2)
我想要的和这个顺序完全一样,不是从 1...5 而是从 1,5,4,3,2。 我该怎么做?
【问题讨论】:
标签: mysql sql-order-by
MYSQL 的 FIELD 函数和 ORDER BY 可以在这里提供帮助。
SELECT
*
FROM
[table]
WHERE
id IN (1,5,4,3,2)
ORDER BY
FIELD(id, 1,5,4,3,2)
negatieve FIELD(id, 1,5,4,3,2) 无法使用 id 列上的索引。
或者没有FIELD函数
SELECT
*
FROM (
SELECT
1 AS number
UNION
SELECT
5 AS number
UNION
SELECT
4 AS number
UNION
SELECT
3 AS number
UNION
SELECT
2 AS number
)
AS numbers
INNER JOIN
[table]
ON
[table].id = numbers.number
positive 可以在 id 列上使用索引。
否定因为提供的表格更难理解
【讨论】: