在 MySQL 的一个查询中,如果表中存在记录,则插入记录或更新记录
我的表
member_id - profil_id - A - B - C
1 2 1 0 0
1 3 0 1 0
我想更新 (member_id=1
和 profil_id=2
和 A=1
) 的记录
member_id - profil_id - A - B - C
1 2 2 0 0
1 3 0 1 0
,我想再次更新记录对于 (member_id=1
和 profil_id=2
和 A=1
)
member_id - profil_id - A - B - C
1 2 3 0 0
1 3 0 1 0
我想为 (member_id=1
) 插入记录代码> 和profil_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=1
和 profil_id=4
的记录code> 和 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=1
和 profil_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
像这样...
谢谢..
My Table
member_id - profil_id - A - B - C
1 2 1 0 0
1 3 0 1 0
I want to update record for (member_id=1
and profil_id=2
and A=1
)
member_id - profil_id - A - B - C
1 2 2 0 0
1 3 0 1 0
and again, I want to update record for (member_id=1
and profil_id=2
and A=1
)
member_id - profil_id - A - B - C
1 2 3 0 0
1 3 0 1 0
I want to insert record for (member_id=1
and profil_id=4
and A=1
)
member_id - profil_id - A - B - C
1 2 3 0 0
1 3 0 1 0
1 4 1 0 0
and again I want to update record for (member_id=1
and profil_id=4
and C=1
)
member_id - profil_id - A - B - C
1 2 3 0 0
1 3 0 1 0
1 4 1 0 1
and again I want to update record for (member_id=1
and profil_id=4
and C=1
)
member_id - profil_id - A - B - C
1 2 3 0 0
1 3 0 1 0
1 4 1 0 2
like this...
thanks..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 MySQL 中有两种方法可以做到这一点。第一个是使用
REPLACE
。第二种是使用INSERT...ON DUPLICATE KEY UPDATE
。REPLACE
将尝试删除行,无论成功还是失败,都会插入新行。INSERT...ON DUPLICATE KEY UPDATE 将尝试插入一行,如果插入由于索引错误上的重复键而失败,则会进行更新。
There are two ways of doing this in MySQL. The first is using
REPLACE
. The second is usingINSERT...ON DUPLICATE KEY UPDATE
.REPLACE
will try a delete row, and regardless of success or failure, insert the new row.INSERT...ON DUPLICATE KEY UPDATE
will try and insert a row and if the insert fails due to a duplicate key on an index error, does an update.