Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 插入具有与现有行相关的值的新行_Php_Mysql_Pdo - Fatal编程技术网

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;