>我有一个自引用表,我想在单个查询中添加父示例和子示例。有没有更好的方法可以做到这一点,然后以类似于我在下面的方式分解它?
+---------------------+
| example |
+---------+-----------+
| id | parent_id |
+---------+-----------+
| 1 | |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | |
| 6 | 5 |
| 7 | 5 |
+---------+-----------+
DECLARE example_id INT;
INSERT INTO `example` (parent_id) VALUE("");
SET example_id = LAST_INSERT_ID();
INSERT INTO `example` (parent_id) VALUE (example_id);
如果你的问题指的是树结构,你最好看看这篇文章。如果您只有 1 个级别的孩子供父母使用,那么您的方式可能是最简单的方法。
你的做事方式看起来不错。
在实际示例中,您可能会根据某些标准执行insert - select
。
INSERT INTO example SELECT
null as id
,e.id as parent_id
,10 as field1
,....
FROM example e WHERE e.somefield = 10 ORDER BY e.id DESC LIMIT 1;