Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
MySQL树结构数据库-复制节点的最佳方式?_Mysql_Tree - Fatal编程技术网

MySQL树结构数据库-复制节点的最佳方式?

MySQL树结构数据库-复制节点的最佳方式?,mysql,tree,Mysql,Tree,我有一个数据库,有3列:node\u id、node\u parent、title。现在,我正在尝试找出复制节点并保留父id的最佳方法 我的意思是: 我正在考虑用PHP递归地运行它,并遍历每个节点和子节点,但在我看来,它根本没有经过优化。仅使用MySQL查询就可以做到这一点吗?如果您想添加一个新行,使用一个查询将节点的父项和标题保留在现有行中,那么应该可以: INSERT INTO <table> SELECT NULL, node_parent, title FROM <ta

我有一个数据库,有3列:node\u id、node\u parent、title。现在,我正在尝试找出复制节点并保留父id的最佳方法

我的意思是:


我正在考虑用PHP递归地运行它,并遍历每个节点和子节点,但在我看来,它根本没有经过优化。仅使用MySQL查询就可以做到这一点吗?

如果您想添加一个新行,使用一个查询将节点的父项和标题保留在现有行中,那么应该可以:

INSERT INTO <table> SELECT NULL, node_parent, title FROM <table> WHERE id = 1;

请注意,节点id列应设置为自动增量。

需要复制多少级别?如果只有一个,则可以执行以下操作:

INSERT INTO table1 SELECT NULL,node_parent, title FROM table1 WHERE id=2;
INSERT INTO table1 SELECT null,LAST_INSERT_ID(),title FROM table1 where node_parent=2;

正如前面的海报所提到的,节点id应该是自动递增的。

我应该写“复制”而不是“复制”。我只想为要复制的节点保留节点\父节点。该节点下的每个其他子节点都应具有刚刚复制的节点的父节点id。我想知道我是否只能用mysql来实现这一点。