如果MySQL中的一个查询中的表中存在记录或更新记录

时间:2011-06-19 12:11:17

标签: mysql sql sql-update record sql-insert

我的表

member_id - profil_id - A - B - C
1           2           1   0   0
1           3           0   1   0

我想更新(member_id=1profil_id=2A=1)的记录

member_id - profil_id - A - B - C
1           2           2   0   0
1           3           0   1   0

再次,我想更新(member_id=1profil_id=2A=1)的记录

member_id - profil_id - A - B - C
1           2           3   0   0
1           3           0   1   0

我想为(member_id=1profil_id=4以及A=1

插入记录
member_id - profil_id - A - B - C
1           2           3   0   0
1           3           0   1   0
1           4           1   0   0

我想再次更新(member_id=1profil_id=4以及C=1)的记录

member_id - profil_id - A - B - C
1           2           3   0   0
1           3           0   1   0
1           4           1   0   1

我想再次更新(member_id=1profil_id=4以及C=1)的记录

member_id - profil_id - A - B - C
1           2           3   0   0
1           3           0   1   0
1           4           1   0   2
像这样......

感谢..

1 个答案:

答案 0 :(得分:1)

在MySQL中有两种方法可以做到这一点。第一个是使用REPLACE。第二个是使用INSERT...ON DUPLICATE KEY UPDATE

REPLACE将尝试删除行,无论成功与否,都插入新行。

INSERT...ON DUPLICATE KEY UPDATE将尝试插入一行,如果插入因索引错误的重复键而失败,则进行更新。