Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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_Database - Fatal编程技术网

Mysql 使用单个查询更新数据库中的一组数据(删除一些条目并添加一些条目)

Mysql 使用单个查询更新数据库中的一组数据(删除一些条目并添加一些条目),mysql,sql,database,Mysql,Sql,Database,假设我有一个可以与k类别关联的产品。简化的数据库结构: // Table for products product - pid - name // Table for categories category - cid - name // table associating a product with categories product_category - pcid - pid - cid 假设当前系统状态已将产品与一组类别关联。前 Product: Dell XPS Laptop

假设我有一个可以与
k
类别关联的产品。简化的数据库结构:

// Table for products
product
- pid
- name

// Table for categories
category
- cid
- name

// table associating a product with categories
product_category
- pcid
- pid
- cid
假设当前系统状态已将产品与一组类别关联。前

Product: Dell XPS Laptop
Categories: Laptop, Electronics, Dell
稍后,管理员提交一组更新的类别,从产品中删除
Dell
,并添加
计算机
。管理员还可以随时删除多个类别并添加多个类别

我可以通过以下几种方法中的一种,使用两个步骤完成此操作:

  • 删除产品的所有类别,并在新集合中添加这些类别
  • 检索所有当前类别,将其与新类别集进行比较;然后根据需要运行删除和插入查询
  • 问题:

    是否有一种方法可以使用单个查询同时执行删除和更新操作?要求MySQL检查这个新集合,删除现有但不在新集合中的内容,并添加不存在的类别

    这是不可能的。看

    您可以创建和

    在单个查询中执行它

    问候