gpt4 book ai didi

mysql - 如何通过 id 列表(包括重复的 id)获取行?

转载 作者:行者123 更新时间:2023-11-29 06:26:02 24 4
gpt4 key购买 nike

我有一个id列表

1,1,2,3,3,3,1

并且想要计算以上行的列的总和。如果我使用 IN 作为

SELECT SUM(score) FROM table1 WHERE id IN(1,1,2,3,3,3,1)

它将是三行(唯一 ID)的总和,但我也需要包含重复行(7 行 1,1,2,3,3,3,1)。

编辑:表结构很简单。类似的东西

CREATE TABLE table1
(
id int(11) unsigned NOT NULL AUTO_INCREMENT,
score int(11),
PRIMARY KEY (id)
) ENGINE=InnoDB

最佳答案

您需要创建一个包含这些 id 值的派生表,然后将其 JOIN 到您的 table1 中,为每个实例生成行您的列表中的值。然后可以对这些行求和:

SELECT SUM(score)
FROM (SELECT 1 AS id UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 3 UNION ALL SELECT 3 UNION ALL SELECT 1) ids
JOIN table1 t1 ON t1.id = ids.id

Demo on dbfiddle

关于mysql - 如何通过 id 列表(包括重复的 id)获取行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59464714/

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