如何根据另一个表中的值动态更新一个表中的sql列

时间:2016-07-04 06:06:34

标签: mysql

有2个表,

Reviews Table Contains:
Overall(InnoDB):
(value can be 1.0,1.5,2.0,2.5 .... 5.0)

Stats(MyISAM):
(contains columns R1.0,R1.5,....R5.0)

因此,当整体价值为5.0 I时,只想将R5.0增加1,而当整体价值为1.5时,我希望仅将1.5增加1。

我正在使用MySQLi,如何使用phpmyadmin中的触发器实现此目的?任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

在表格之间使用UPDATE JOIN。然后以Stats中的值为条件递增Reviews中的列。

UPDATE Stats AS s
JOIN Reviews AS r ON s.itemid = r.itemid
SET s.`R1.0` = IF(r.Overall = 1.0, s.`R1.0` + 1, s.`R1.0`),
    s.`R1.5` = IF(r.Overall = 1.5, s.`R1.5` + 1, s.`R1.5`),
    s.`R2.0` = IF(r.Overall = 2.0, s.`R2.0` + 1, s.`R2.0`),
    ...