我有一个包含3列的数据库(node_id,node_parent,title)。现在,我试图找出复制节点并保留父ID的最佳方法。
这就是我的意思:
我正在考虑使用PHP递归执行它并遍历每个节点和子节点,但在我看来它根本没有优化。是否可以仅使用MySQL查询来执行此操作?
答案 0 :(得分:0)
如果您想使用一个查询添加一个新行来保留现有行中的node_parent
和title
,那么这应该有效:
INSERT INTO <table> SELECT NULL, node_parent, title FROM <table> WHERE id = 1;
请注意,node_id
列应设置为AUTO_INCREMENT
。
答案 1 :(得分:0)
您需要复制多少级别?如果只有一个,那么您可以执行以下操作:
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;
如前面提到的海报,node_id应为AUTO_INCREMENT。