总结任意行列表

时间:2016-05-28 10:03:56

标签: mysql sqlite duplicates

我希望我能写出这样的东西:

SELECT sum(weight) FROM items WHERE itemID IN (4217,4575,6549,4217)

其中itemID是主键,SQLite和MySQL会按预期处理它,即将第4217行添加到总和两次,但它们没有。

至少在MySQL中有什么东西我不知道这是针对这样的情况吗?如果没有,解决方法是什么样的?任何行都可以在列表中包含任意数量的重复项。虽然在大多数情况下很小,但列表可能很大。

1 个答案:

答案 0 :(得分:1)

我不知道任何可以做到这一点的开箱即用功能。这是workaroud。您可以将这些值插入临时表并使用连接:

CREATE TEMPORARY TABLE List(ID INT);
INSERT INTO List(ID) VALUES(4217),(4575),(6549),(4217);

SELECT SUM(i.weight) 
FROM items i
JOIN List l ON i.itemID = l.ID;