MYSQL,多次相同的行

时间:2017-05-05 23:36:07

标签: php mysql database

大家好,

这是我第一次发帖,我现在一直在寻找asnwer,而且我有点饿死了。

我在mysql中有一个看起来像这样的表

function returnSecondOptionGeneric2<TMorph, T1, T2> (morph: TMorph & Morph<T1, T2>): T2 {
    return morph.secondOption;
}

我想要做的是能够随意选择任何包裹,总计总数,并查看需要多少库存。

实施例

星期六有3x套餐1和1x套餐3

所以我总共需要10个扬声器和5个麦克风

这是我在php文件中的当前代码

Package | Speakers | Microphone
1       | 2        | 1
2       | 2        | 1
3       | 4        | 2

如何在同一行中多次选择以便正确汇总

1 个答案:

答案 0 :(得分:0)

将乘法与CASE表达式一起使用。

SELECT SUM(speaker * 
            CASE Package
                WHEN 1 THEN 3
                WHEN 3 THEN 1
            END) AS Speaker,
      SUM(microphone *
            CASE Package
                WHEN 1 THEN 3
                WHEN 3 THEN 1
            END) AS Microphone
FROM yourTable
WHERE Package IN (1, 3)

您可以使用返回数量的子查询来代替重复CASE表达式。

SELECT SUM(t.speaker * q.quantity) AS Speaker, SUM(t.microphone * q.quantity) AS Microphone
FROM yourTable AS t
JOIN (SELECT 1 AS package, 3 AS quantity
      UNION
      SELECT 3 AS package, 1 AS quantity) AS q
ON t.package = q.package
WHERE t.package IN (1, 3)

如果您在PHP中动态构建查询,这应该更容易使用。