插入多行,其中大多数是常量

fed*_*qui 5 mysql insert

我必须在表格中插入大量记录.它没有完全正常化,因此大多数字段都会重复出现.

我知道正确的命令是:

INSERT INTO table_name (field1, field2, ..., field_n) 
VALUES (value1, value2, ..., value_n),
    ...
    (value1, value2, ..., value_n)
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有可能保持一些值固定,只是指出不同的值.

让我们说而不是

INSERT INTO table_name (shop, month, sale)
VALUES (1, 2, 23),
    (1, 2, 28),
    (1, 2, 29),
    (1, 2, 30)
Run Code Online (Sandbox Code Playgroud)

有类似的东西

INSERT INTO table_name (shop, month, sale)
VALUES (1, 2, 23), ... 28 / 29 / 30
Run Code Online (Sandbox Code Playgroud)

如果不可能,我会创建一个带循环的程序,输入一个字符串等.这不是一个大问题,但我的意思是知道INSERT INTO是否有任何特殊性允许在没有程序的情况下执行此操作.

new*_*ver 3

您可以尝试如下操作:

INSERT INTO table_name (shop, month, sale)
SELECT * FROM
(SELECT 1 as shop, 2 as month) as sm,
(SELECT 23 as sale UNION ALL SELECT 28 UNION ALL SELECT 30) as sales;
Run Code Online (Sandbox Code Playgroud)