我想知道是否可以在类似这样的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
通常,第一种形式更简洁,但是如果存在大量的恒定列,第二种形式可能更有用。
关于mysql - SQL在R值中插入具有类型数组的多个对?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12976455/