0

INSERT次のようなステートメントに複数の値を挿入できるかどうかを知りたいです。

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

これが不可能な場合は、ストアドプロシージャを使用します。私の質問は、実際の目的よりも好奇心のためです。レコードを一度に1つずつ挿入し、それが仕事をする作業ループを使用しているからです。

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

一般に、最初の形式の方が簡潔ですが、定数列が多数ある場合は、2番目の形式の方が便利な場合があります。

于 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 に答える