Php 插入具有与现有行相关的值的新行
我试图插入一个新行,其中一列是该列的Php 插入具有与现有行相关的值的新行,php,mysql,pdo,Php,Mysql,Pdo,我试图插入一个新行,其中一列是该列的MAX的函数,而该列的值已经存在。我知道我可以通过设置一个临时变量和两个查询来轻松地使用PHP实现这一点,但我只是想知道您是否可以在纯MySQL中实现这一点 首先,我尝试了这个方法(注意,查询包含的内容要多得多,但这就是问题所在): 这将产生以下错误: 1111组函数的使用无效 然后我试着: INSERT INTO tbl (column_name) VALUES ( ( SELECT max( column_name ) + 6 FROM tbl )
MAX
的函数,而该列的值已经存在。我知道我可以通过设置一个临时变量和两个查询来轻松地使用PHP实现这一点,但我只是想知道您是否可以在纯MySQL中实现这一点
首先,我尝试了这个方法(注意,查询包含的内容要多得多,但这就是问题所在):
这将产生以下错误:
1111组函数的使用无效
然后我试着:
INSERT INTO tbl
(column_name)
VALUES (
( SELECT max( column_name ) + 6 FROM tbl )
)
这将产生以下错误:
1093不能在FROM子句中为更新指定目标表“tbl”
只需取出值()。插入到表2中(columnname)从表1中选择任何内容@developerwk正如我提到的,我还有许多其他东西要插入。这只是其中一列。查询中总共有大约20列,但为了简单起见,我只包含了一列。@developerwjk问题的一部分是,这不是表1和表2,它们都是表1。请检查这些内容。@Mike:是的,但这些可以是文字值:
INSERT。。。从tbl中选择MAX(col)+6、'literalstring',123、'2013-06-12'代码>一个问题。。有没有办法指定要将值插入到哪些列中?或者我必须按照准确的顺序包含tbl
中的所有列吗?是的,在中编辑,但也要查看@boen_robot提供的链接:
INSERT INTO tbl
(column_name)
VALUES (
( SELECT max( column_name ) + 6 FROM tbl )
)
INSERT INTO tbl (col, somecharcol, someintcol,somedatecol)
SELECT MAX(col)+6,'literalstring',123,'2013-06-12' FROM tbl;