【发布时间】:2017-09-23 11:07:01
【问题描述】:
我有一个带有 id(AUTO_INC)、user_id、user_interest 列的 user_interests 表。 我想要一种简单的方法将数据插入到 user_id 和 user_interest 中而不会出现重复条目。
例如如果我以前有这样的桌子。
+------------------------------+
| ID | user_id | user_interest |
+------------------------------+
| 1 | 2 | Music |
| 2 | 2 | Swimming |
+------------------------------+
如果我现在insert into table (user_id, user_interest) values ((2, Dance),(2, Swimming),我只需要插入 (2,dance) 条目 - 不需要 (2, 游泳),因为 (2, 游泳) 已经存在于表中。
我见过upsert 命令,也尝试过创建如下命令,但它不起作用。
INSERT INTO `user_interests`( `user_id`,`interest` )
VALUES ("2","Music")
WHERE (SELECT COUNT(`interest`) FROM `user_interests`
WHERE `interest` = "Music" AND `user_id` = "2"
Having COUNT(`interest`) <=0 )
【问题讨论】:
-
为表添加唯一约束,即
unique(user_id, user_interest)。 -
标记您正在使用的 dbms。添加更多示例数据 - 并尝试插入数据 - 并向我们展示预期结果!
标签: sql insert duplicates