0

我想知道是否可以在INSERT语句中插入多个值,如下所示:

INSERT INTO myTable VALUES ( constant , ARRAY(multipleValues) );

如果这不可能,我将使用存储过程。我的问题更多是出于好奇而不是出于真正的目的,因为我正在使用一个工作循环,它一次插入一次记录并且可以完成这项工作。

4

3 回答 3

1

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

通常第一种形式更简洁,但是如果有大量常量列,第二种形式可能更有用。

于 2012-10-19T14:44:30.310 回答
0

您可以在 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');
于 2012-10-19T14:43:26.193 回答
0

正如我在对@eggyal 的评论中所说, 我找到了解决方案:

INSERT INTO
    t1
SELECT
    "theConstant",
    subValue
FROM
    subTable
;

感谢@eggyal 的主要想法。

于 2013-03-04T09:51:29.143 回答