如果不存在具有相同字段的行,如何使用INSERT;如果存在具有相同字段的行,则如何使用UPDATE

时间:2019-08-08 09:58:45

标签: php mysql

编辑:它不是重复的!这些情况下使用主键,所以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

如何将这两个查询放在一起?

0 个答案:

没有答案