【发布时间】:2016-10-21 20:31:12
【问题描述】:
这种看似简单的任务,但我想我不知道在互联网上找到合适的词。
我想要的只是这样:
SELECT SUM(price) FROM products WHERE id IN (5, 10, 10, 10, 13, 15, 18, 18);
这基本上会返回我的结果:
price_of_5 + price_of_10 + price_of_10 + price_of_10 +
price_of_13 + price_of_15 + price_of_18 + price_of_18
也就是说,这个概念是SELECT 与 IN 子句中指定的行数完全相同,即使一个值被指定了多次。
编辑
这是一个简单的测试环境(or a fiddle)
1- 创建表
CREATE TABLE products (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
`price` float NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2- 喂桌子
INSERT INTO products VALUES (1, 'Apple', 5), (2, 'Orange', 6), (3, 'Grape', 10), (4, 'Watermelon', 20), (5, 'Cashew', 7);
3- 我想要的示例:
SELECT SUM(price) FROM products WHERE id IN (1, 2, 2, 4);
结果:31 (5 + 6 + 20)
预期:37(5 + 6 + 6 + 20)
【问题讨论】:
-
能否提供数据样本和预期结果集?
-
@Alex 我刚刚发布了一个小提琴