Mysql 如果条件列为true,则添加值
我有一个MySql查询,如下所示:Mysql 如果条件列为true,则添加值,mysql,sum,add,Mysql,Sum,Add,我有一个MySql查询,如下所示: SELECT o.id, o.priorytet_1 + o.priorytet_2 + o.priorytet_3 AS bonus FROM obiekty o WHERE o.ac=1 GROUP BY o.id ORDER BY `o`.`id` ASC 在priorytet_1、priorytet_2和priorytet_3列旁边,我有priorytet_1\u valid、priorytet
SELECT o.id,
o.priorytet_1 +
o.priorytet_2 +
o.priorytet_3 AS bonus
FROM obiekty o
WHERE o.ac=1
GROUP BY o.id
ORDER BY `o`.`id` ASC
在priorytet_1、priorytet_2和priorytet_3
列旁边,我有priorytet_1\u valid、priorytet_2\u valid、priorytet_3\u valid
存储日期,例如priorytet_1
对其有效
我只想添加那些列,日期是
比如:
SELECT o.id,
if (o.priorytet_1_valid < now()) o.priorytet_1 +
if (o.priorytet_2_valid < now()) o.priorytet_2 +
if (o.priorytet_3_valid < now()) o.priorytet_3 AS bonus
FROM obiekty o
WHERE o.ac=1
GROUP BY o.id
ORDER BY `o`.`id` ASC
选择o.id,
如果(o.priorytet_1_valid
谢谢你的帮助 试试看:
SELECT o.id,
SUM(IF (o.priorytet_1_valid < NOW(), o.priorytet_1, 0) +
IF (o.priorytet_2_valid < NOW(), o.priorytet_2, 0) +
IF (o.priorytet_3_valid < NOW(), o.priorytet_3, 0)) AS bonus
FROM obiekty o
WHERE o.ac=1
GROUP BY o.id
ORDER BY `o`.`id` ASC
选择o.id,
求和(如果(o.priorytet_1_valid
您可能想使用SUM
,因为您有一个groupby
子句。上述查询中使用的SUM
函数有条件地添加字段o.priorytet_1、o.priorytet_2、o.priorytet_3
,以防相应的“有效”字段早于当前日期/时间