我想知道是否可以在INSERT
语句中插入多个值,如下所示:
INSERT INTO myTable VALUES ( constant , ARRAY(multipleValues) );
如果这不可能,我将使用存储过程。我的问题更多是出于好奇而不是出于真正的目的,因为我正在使用一个工作循环,它一次插入一次记录并且可以完成这项工作。
MySQL 没有数组数据类型。为了将应用程序代码中的数组传递到 MySQL 查询中,您需要将其分解为字符串。
然后你可以这样做:
INSERT INTO myTable
VALUES
(constant, value1),
(constant, value2),
(constant, value3),
-- etc.
或者:
INSERT INTO myTable
SELECT constant, t.value
FROM (
SELECT value1 AS value
UNION ALL
SELECT value2
UNION ALL
SELECT value3
-- etc.
) AS t
通常第一种形式更简洁,但是如果有大量常量列,第二种形式可能更有用。
您可以在 VALUES 部分中插入多条记录,如下所示
INSERT INTO example (example_id, name, value, other_value)
VALUES
(100, 'Name 1', 'Value 1', 'Other 1'),
(101, 'Name 2', 'Value 2', 'Other 2'),
(102, 'Name 3', 'Value 3', 'Other 3'),
(103, 'Name 4', 'Value 4', 'Other 4');
正如我在对@eggyal 的评论中所说, 我找到了解决方案:
INSERT INTO
t1
SELECT
"theConstant",
subValue
FROM
subTable
;
感谢@eggyal 的主要想法。