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很多。。。你一直很有用。。。