我想为我的项目使用SELECT INSERT;但是,需要填充插入的列之一对应于INSERT中的位置。我试过使用子查询(如下所示),只是在SELECT的FROM子句中使用表名 - 两者似乎都不起作用。选择插入索引?
我得到的输出始终是 “10001”,而不是我所期望的(即 “10001”, “10002”, “10003” 等)
任何帮助吗?
INSERT INTO table
(
Key2
)
SELECT
(SELECT IF(CAST(MAX(t.Key2) as UNSIGNED) IS NULL, "10001", CAST(MAX(t.Key2) as UNSIGNED)+1) FROM (select * from table) t)
FROM table2
我相信,在你的逻辑问题你正在使用一个聚合函数(max())。这将这些值限制为仅返回1个值。 – Mackers
http://stackoverflow.com/questions/9631096/mysql-incrementing-value –