mysql:如何删除然后插入特定类型的所有记录?
情况如下:mysql:如何删除然后插入特定类型的所有记录?,mysql,sql,Mysql,Sql,情况如下: 我有一个主要的管理员,其id,在person表中是478 该管理员应该处理表partners中的合作伙伴 有一个表可以“连接”他们:person\u partners 有时,有些人会添加新的合作伙伴,我想运行一个查询: 要么: 删除此管理员和合作伙伴之间的所有链接,某种类型的DELETE*FROM person\u partners,其中id\u person=478 重新插入此管理员和合作伙伴之间的所有链接(=也将插入新的合作伙伴),某种类型的插入person\u合作伙伴(
- 我有一个主要的管理员,其
,在id
表中是person
478
- 该管理员应该处理表
中的合作伙伴partners
- 有一个表可以“连接”他们:
person\u partners
- 要么:
- 删除此管理员和合作伙伴之间的所有链接,某种类型的
DELETE*FROM person\u partners,其中id\u person=478
- 重新插入此管理员和合作伙伴之间的所有链接(=也将插入新的合作伙伴),某种类型的
(但此查询给我此错误:插入person\u合作伙伴(id\u person,id\u partner)值(478,从合作伙伴中选择id)
)错误1242(21000):子查询返回多行
- 删除此管理员和合作伙伴之间的所有链接,某种类型的
- 或者只需插入所有未加入
且person\u partners
id\u person=478
有什么想法吗?就像BugFinder说的,“你似乎对这个问题有自己的答案” 要修复1242错误,必须这样编写:
INSERT INTO person_partners (id_person,id_partner)
SELECT '478', id FROM partners;
或者,您可以“简单地插入id为478的所有尚未亲自参与的合作伙伴”
阅读更多信息。你似乎对这个问题有自己的答案-你问的是什么?引用我自己的话:
这个查询给我这个错误:错误1242(21000):子查询返回超过1行)
所以它不起作用,我正试图找出如何使它起作用。对不起,如果我不够清楚。。。不要犹豫,编辑我的问题,让它更清楚!非常感谢你
INSERT IGNORE INTO person_partners (id_person,id_partner)
SELECT '478', id FROM partners;
INSERT INTO person_partners (id_person,id_partner) SELECT 478, ID FROM partners
ON DUPLICATE KEY UPDATE id_person=478;