我在该博客https://www.bennadel.com/blog/2913-using-the-insert-into-set-syntax-in-mysql.htm中读到,您可以使用以下SET
语法插入记录。
示例:
INSERT INTO mytable SET col1= 'val1', col6= 'val6', col10='val10';
INSERT INTO mytable SET col3= 'val3', col5= 'val5', col10='val10';
INSERT INTO mytable SET col4= 'val4', col5= 'val5', col6='val6';
是否可以只用1条语句插入多行?
答案 0 :(得分:1)
您可以使用insert into select ...
。
insert into tbl1 (col1, col2, col3)
select equivalent_col1, equivalent_col2, equivalent_col3 from tbl2
where filterCol = 1;
上面的查询从tbl2获取数据并将其插入tbl1
答案 1 :(得分:1)
另一种方法
CREATE TABLE co
(coid int, name varchar(30));
INSERT INTO co
(coid, name)
VALUES
(1,'Volvo'),
(2,'BMW'),
(3,'Microsoft'),
(4,'Apple')
;
您还可以缩短此位置(精确值位置):
INSERT INTO co
VALUES
(1,'Volvo'),
(2,'BMW'),
(3,'Microsoft'),
(4,'Apple')
;
答案 2 :(得分:1)
否,INSERT ... SET
语法不能用于插入多行。如果您查看INSERT ... SET
语法here,则会看到:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name [, partition_name] ...)] SET assignment_list [ON DUPLICATE KEY UPDATE assignment_list]
旁边:
assignment: col_name = value assignment_list: assignment [, assignment] ...
只能提供1个assignment_list
(值列表),因此您只能插入一行。
this comment上的一个问题还询问了INSERT ... SET
和INSERT ... VALUES
之间的区别。
答案 3 :(得分:0)
要使用单个INSERT语句向表中添加多行,请使用以下语法:
INSERT INTO MyTable
( Column1, Column2, Column3 )
VALUES
('John', 123, 'Lloyds Office'),
('Jane', 124, 'Lloyds Office'),
('Billy', 125, 'London Office'),
('Miranda', 126, 'Bristol Office');
答案 4 :(得分:0)
INSERT INTO ... SET ...
语法不能用于同一语句的多次插入。
但是您可以将INSERT INTO
中的SELECT
与UNION ALL
一起使用。
或来自INSERT INTO
的{{1}}。
然后将NULL放入没有值的列中。
示例:
VALUES
CREATE TABLE mytable ( id int primary key auto_increment, col1 varchar(30), col2 varchar(30), col3 varchar(30), col4 varchar(30), col5 varchar(30) );
INSERT INTO mytable (col1, col2, col3, col4, col5) SELECT 'val1' as val1, null as val2, null as val3, 'val4' as val4, null as val5 UNION ALL SELECT null, 'val2', null, null, null UNION ALL SELECT 'val1', null, 'val3', null, 'val5';
INSERT INTO mytable (col1, col2, col3, col4, col5) VALUES (null, 'val2', 'val3', 'val4', null), ('val1', null, 'val3', null, 'val5');
id | col1 | col2 | col3 | col4 | col5 -: | :--- | :--- | :--- | :--- | :--- 1 | val1 | null | null | val4 | null 2 | null | val2 | null | null | null 3 | val1 | null | val3 | null | val5 4 | null | val2 | val3 | val4 | null 5 | val1 | null | val3 | null | val5
db <>提琴here