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

发布于 2024-11-16 09:41:14 字数 1383 浏览 3 评论 0原文

我的表

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=1) 插入记录代码> 和profil_id=4A=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 的记录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=1profil_id=4C= 的记录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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

将军与妓 2024-11-23 09:41:14

在 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 using INSERT...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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文