mysql - 插入多行,其中大部分是常量

标签 mysql insert

我必须在表中插入大量记录。它不是很规范,所以大部分字段都是重复的。

我知道正确的命令是:

INSERT INTO table_name (field1, field2, ..., field_n) 
VALUES (value1, value2, ..., value_n),
    ...
    (value1, value2, ..., value_n)

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

让我们说而不是

INSERT INTO table_name (shop, month, sale)
VALUES (1, 2, 23),
    (1, 2, 28),
    (1, 2, 29),
    (1, 2, 30)

有类似的东西

INSERT INTO table_name (shop, month, sale)
VALUES (1, 2, 23), ... 28 / 29 / 30

如果不可能,我会创建一个带有循环、提供字符串等的过程。这不是什么大问题,但我的意思是要知道 INSERT INTO 是否具有允许在没有过程的情况下执行此操作的特殊性。

最佳答案

您可以尝试以下操作:

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;

关于mysql - 插入多行,其中大部分是常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14706393/

相关文章:

php - MySQL 动态选择列

php - 特定邮政编码 : PHP mysql 附近的用户

mysql - 选择与值组合关联的 ID

mysql - 插入表强制新主键

sql - 基于SELECT结果的SQL INSERT

如果不存在相同的整行,则 MySQL INSERT

java - 使用Java在MySql数据库中插入汉字

php - Mysql INSERT IGNORE INTO 仅忽略一列

SQLite - 在插入中向特定日期添加天数

php - MySQL 使用 GROUP BY 查询太慢