我想知道是否可以在类似这样的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/

10-11 02:07