MySQL-按自动关系排序
我有一张这样的桌子:MySQL-按自动关系排序,mysql,Mysql,我有一张这样的桌子: tb_objs ------- obj_id int(10) unsigned NOT NULL AUTO_INCREMENT obj_name varchar(45) NOT NULL obj_parent int(10) unsigned DEFAULT NULL obj_id | obj_name | obj_parent 3 | first | null 9 | second |
tb_objs
-------
obj_id int(10) unsigned NOT NULL AUTO_INCREMENT
obj_name varchar(45) NOT NULL
obj_parent int(10) unsigned DEFAULT NULL
obj_id | obj_name | obj_parent
3 | first | null
9 | second | 3
1 | third | 9
2 | fourth | 1
4 | fifth | 2
...
etc etc etc etc
它有点像一个有序的列表。。。第一个元素的'obj_parent'=null,第二个元素的'obj_parent'=第一个元素的id等
所以,我想选择所有按obj_父对象排序的元素。。。
我不知道我是否清楚我想要的是什么。。。但结果必须是这样的:
tb_objs
-------
obj_id int(10) unsigned NOT NULL AUTO_INCREMENT
obj_name varchar(45) NOT NULL
obj_parent int(10) unsigned DEFAULT NULL
obj_id | obj_name | obj_parent
3 | first | null
9 | second | 3
1 | third | 9
2 | fourth | 1
4 | fifth | 2
...
etc etc etc etc
如果你看一下。。。对象“child”总是在其父对象之后。。。它就像C++排序表…
obj_parent
obj_id <------ object_parent
obj_id <------ obj_parent
obj_id
obj_父对象
我想我不明白,也许更多的数据会有帮助。您所展示的内容看起来可以通过obj_parent的命令解决。您的问题是希望先为NULL,然后再排序吗?请检查:MySQL确实不支持分层/递归查询。您需要在存储过程中执行此操作。或者,将整个父路径存储到每行的顶部父路径。Tks很多。。。你一直很有用。。。