编辑:它不是重复的!这些情况下使用主键,所以ON DUPLICATE KEY UPDATE就足够了,而在我的情况下,由于我在常规列而不是主键上进行检查,因此我无法使用它。
我有一张桌子,可以说
id | name | log | date
1 | aaa | 1000 | 2019/01/01
2 | bbb | 2000 | 2019/01/01
3 | ccc | 1500 | 2019/02/01
4 | bbb | 900 | 2019/03/01
其中id是主键。名称和日期不是唯一的。
我想在不存在名称和日期的情况下插入行,或者在存在名称和日期的情况下更新行。
我想要这样, 当名称AND日期在同一行中不存在时,它将插入。 只有名字存在:
INSERT INTO table SET name='ccc', date='2019/03/01', log='1000';
输出:
id | name | log | date
1 | aaa | 1000 | 2019/01/01
2 | bbb | 2000 | 2019/01/01
3 | ccc | 1500 | 2019/02/01
4 | bbb | 900 | 2019/03/01
5 | ccc | 1000 | 2019/03/01
,并且同一行中存在名称和日期时将更新:
UPDATE table log=log+'1000' WHERE name='ccc' AND date='2019/02/01';
输出:
id | name | log | date
1 | aaa | 1000 | 2019/01/01
2 | bbb | 2000 | 2019/01/01
3 | ccc | 2500 | 2019/02/01
4 | bbb | 900 | 2019/03/01
如何将这两个查询放在一起?