我有下表
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
Id 只是索引。主键是oddname_id和match_id一起。
我从 xml 解析数据,这是我必须做的:
如果主键不存在,则插入。
当我有 match_id=402 和 oddname_id=1 时,我必须插入,因为 match_id 402 不存在。
重复密钥更新。
当我有 match_id=401 和oddname_id=1 时,我必须只更新 val 和 dif。(dif 等于 val 的差异,它是新值。
如果 KEY DOESN'T EXISTS 我想删除所有数据
这是我的查询;前两个语句工作正常,但我不知道如何使第三个语句起作用:
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)。