im尝试执行触发操作,该操作将在删除之前从time
中选择id_use
和tab1
并插入到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
,但是对不起我的英语不好,谢谢,谢谢。
答案 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)