mysql解决方案,用于添加没有重复项的所有用户
对于以下场景,是否有一个纯mysql解决方案 我想将所有站点用户作为追随者添加到特定的已定义用户 下表的结构如下所示mysql解决方案,用于添加没有重复项的所有用户,mysql,sql,Mysql,Sql,对于以下场景,是否有一个纯mysql解决方案 我想将所有站点用户作为追随者添加到特定的已定义用户 下表的结构如下所示 id, user_id, other_id 我可以使用此查询添加所有用户,但我无法确定如何避免添加已经存在重复项的后续项。1作为本例中的用户,我希望所有其他用户都跟随 INSERT INTO follows(user_id, other_id) SELECT id, 1 as other_id FROM users 插入不存在的行 INSERT INTO follows
id, user_id, other_id
我可以使用此查询添加所有用户,但我无法确定如何避免添加已经存在重复项的后续项。1作为本例中的用户,我希望所有其他用户都跟随
INSERT INTO follows(user_id, other_id)
SELECT
id,
1 as other_id
FROM users
插入不存在的行
INSERT INTO follows(user_id, other_id)
SELECT id, 1 as other_id
FROM users
WHERE NOT EXISTS(SELECT ! FROM follows WHERE user_id = users.Id and other_id = 1)
您可以通过创建唯一关键点约束来实现。。将用户id设置为唯一或用户id与其他id的组合
这太棒了,你还知道如何以随机顺序或至少反向插入它们吗?插入到下面的用户id,其他id选择id,1作为不存在的用户的其他id选择!在下面的例子中,user_id=users.id和other_id=1 ORDER BY users.id DESC,你必须对randomOh和!是错别字,我的意思是1。它只是比选择一个实际的列值便宜。
INSERT INTO follows(user_id, other_id)
SELECT id, 1 as other_id
FROM users ON DUPLICATE KEY UPDATE other_id = VALUES(other_id)