mysql - 条件为 IN 的自定义订单
mysql - custom order with IN condition
我的查询是:
select * from table where id IN (1,5,4,3,2)
我想要的与此顺序完全相同,不是从 1...5 而是 1,5,4,3,2。
我该怎么做?
MYSQL 的 FIELD 函数和 ORDER BY 可以提供帮助。
SELECT
*
FROM
[table]
WHERE
id IN (1,5,4,3,2)
ORDER BY
FIELD(id, 1,5,4,3,2)
否定 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 列上使用索引。
negative 更难理解,因为交付 table
我的查询是:
select * from table where id IN (1,5,4,3,2)
我想要的与此顺序完全相同,不是从 1...5 而是 1,5,4,3,2。 我该怎么做?
MYSQL 的 FIELD 函数和 ORDER BY 可以提供帮助。
SELECT
*
FROM
[table]
WHERE
id IN (1,5,4,3,2)
ORDER BY
FIELD(id, 1,5,4,3,2)
否定 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 列上使用索引。
negative 更难理解,因为交付 table