gpt4 book ai didi

Mysql - 按 2 级排序

转载 作者:行者123 更新时间:2023-11-29 09:22:47 25 4
gpt4 key购买 nike

我有一个项目表。项目有 id,分数 1,分数 2。

我想选择 12 个已知项目(使用 WHERE id IN (....)),并按分数对它们进行排序,该分数是 Score1 和 Score2 的排名之和。如果 12 个项目按分数排序,则排名是分数的位置。

如何在 mysql 中执行此操作?

编辑:

在 4 个答案之后,我发现解决方案可能比我预期的更复杂。所以让我以另一种方式问这个问题。

如果我使用select *, [calculation] from table where id IN (有序的id列表)。我可以以某种方式使用 [calculation] 中原始有序 id 列表中每个 id 的位置吗?

最佳答案

在我的脑海中:

CREATE TEMPORARY TABLE t_1(score_1_rank INT AUTO_INCREMENT, id)
CREATE TEMPORARY TABLE t_2(score_2_rank INT AUTO_INCREMENT, id)

INSERT INTO t_1(id)
SELECT id
FROM items i
WHERE id IN ()
ORDER BY score_1

INSERT INTO t_2(id)
SELECT id
FROM items i
WHERE id IN ()
ORDER BY score_2

SELECT ...
FROM items i
INNER JOIN t_1 t1
ON t1.id = i.id
INNER JOIN t_2 t2
ON t2.id = i.id
ORDER BY t1.rank + t2.rank

我是否正确理解了您的请求?

关于Mysql - 按 2 级排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1097636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com