gpt4 book ai didi

mysql - 插入时重复记录

转载 作者:行者123 更新时间:2023-11-29 00:14:17 24 4
gpt4 key购买 nike

我有一个数据库表,记录每个 user_id 使用的是哪个 site_id。每次保存设置时,我都会收到重复项。我需要它,这样我就可以在表中查询 user_id = 99 并查看哪个 site_id 与该 user_id 相关联。

SQL:

  $sql = "INSERT INTO user_sites (rooftop_id, site_id, created_at, active)
VALUES ('$rooftop_id','$key', now(), '$value')
ON DUPLICATE KEY
UPDATE updated_at = IF(active=VALUES(active),updated_at,NOW()),
active = VALUES(active)
";

当前输出:

+----+---------+---------+--------+
| id | user_id | site_id | active |
+----+---------+---------+--------+
| 1 | 99 | 30 | 1 |
| 2 | 99 | 20 | 1 |
| 3 | 99 | 40 | 1 |
| 4 | 32 | 30 | 1 |
| 5 | 32 | 20 | 1 |
| 6 | 32 | 40 | 1 |
| 7 | 32 | 30 | 0 |
| 8 | 32 | 20 | 0 |
| 9 | 32 | 40 | 0 |
+----+---------+---------+--------+

期望的输出:

+----+---------+---------+--------+
| id | user_id | site_id | active |
+----+---------+---------+--------+
| 1 | 99 | 30 | 1 |
| 2 | 99 | 20 | 1 |
| 3 | 99 | 40 | 1 |
| 4 | 32 | 30 | 0 |
| 5 | 32 | 20 | 0 |
| 6 | 32 | 40 | 0 |
+----+---------+---------+--------+

最佳答案

您是否在表中定义了唯一键?对于你想要的,我认为是:

create unique index admin_sites_userid_siteid on admin_sites(user_id, site_id);

这随后用于定义插入与现有行匹配的时间。

关于mysql - 插入时重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com