我有下表
id val match_id oddname_id dif
1 1.75 401 1 0.25 //THIS ONE MUST BE DELETED. EXPLAINED BELOW
2 3.30 401 2 -0.20
3 5.00 401 3 0.00
4 1.13 401 4 0.00
我只是索引。主键是 oddname_id 和 match_id 。
我从xml解析数据,这是我必须做的事情:
如果PRIMARY KEY不存在则INSERT。
当我有match_id = 402和oddname_id = 1时,我必须插入,因为match_id 402不存在。
ON DUPLICATE KEY UPDATE。
当我有match_id = 401和oddname_id = 1时,我必须只更新val和dif。 (dif等于val的差异和它的新值。
如果KEY不存在
这是我的查询;前两个陈述工作正常,但我不知道如何让第三个陈述工作:
INSERT INTO odds
(match_id,oddname_id,val)
VALUES
('401','2','3.3'),
('401','3','5.0'),
('401','4','1.25'),
ON DUPLICATE KEY
UPDATE
dif = val-VALUES(val),
val = VALUES(val);
我想在此查询中添加以下内容:
IF KEY DOESN'T EXISTS DELETE.
在此示例中,它必须删除第一行:
id val match_id oddname_id dif
1 1.75 401 1 0.25
因为插入时我没有在VALUES中使用401(match_id)和1(oddname_id)。
答案 0 :(得分:0)
odds
表中删除temp中不存在的记录。 table - 使用DELETE和JOIN命令。odds
表。 table - 使用INSERT ... ON DUPLICATE KEY UPDATE命令。