MYSQL--INSERT和SELECT联合使用

DL东和易 / 2023-07-17 / 原文

语法

INSERT INTO table_name ( field1, field2, field3 ) 
SELECT column_name1, column_name2, column_name3 FROM table_name;

注意

  1. 不需要添加VALUES!
  2. SELECT的字段和INSERT的字段一 一对应!

假设有表s_user,结构如下

image

id: 主键ID
name: 姓名
org_id: 部门ID
sex: 性别

示例

假设有需求, 将s_user表中的org_id = 1的所有用户复制到org_id = 5部门下, 并保留org_id = 1的所有用户;

我们只需要查询org_id = 1的所有用户, 并将org_id字段设置为5, 进行批量新增操作;

INSERT INTO s_user (name, org_id, sex)
SELECT name, 5, sex FROM s_user WHERE org_id = 1

image

新增成功.

image