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

对于以下场景,是否有一个纯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(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)