选择,求和,插入(如果存在)用MySql更新

时间:2018-06-20 14:21:08

标签: mysql mariadb

im尝试执行触发操作,该操作将在删除之前从time中选择id_usetab1并插入到tab2中,但是在tab1中时有一些相同id_use它将合计时间,然后插入到tab2中,至此我知道如何做到这一点,那就是我的查询

INSERT INTO tab2 (id_user, time) SELECT id_use, SEC_TO_TIME( SUM( TIME_TO_SEC( time ) ) ) AS suma FROM tab1 GROUP BY id_use HAVING COUNT(*) > 0

但是现在(对于我来说)是棘手的部分,如果tab2中已经存在相同的id_user,那么如果没有用户,我必须用新值对tab1中已经存在的值求和只需插入此ID。我尝试过ON DUPLICATE KEY UPDATE,但是对不起我的英语不好,谢谢,谢谢。

1 个答案:

答案 0 :(得分:0)

我应该问为什么你不能为此使用像php这样的后端语言?

然后仅进行查询,例如:Select id_use FROM tab1 WHERE id_use='xy';

然后使用mysql_num_rows() 然后:

if(num_rows > 0){
      //update it
    }else{
      //insert it
    }

但是,如果您愿意,可以尝试以下操作:INSERT INTO tab2 (id_user, time) SELECT id_use, SEC_TO_TIME( SUM( TIME_TO_SEC( time ) ) ) AS suma FROM tab1 GROUP BY id_use HAVING COUNT(*) > 0 ON DUPLICATE KEY UPDATE time=(SELECT SEC_TO_TIME(SUM(TIME_TO_SEC( time) ) ) FROM tab1)