Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql:如何删除然后插入特定类型的所有记录?_Mysql_Sql - Fatal编程技术网

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;