不是啊,Level字段一定要,比如说有这样几个值:
0, 1, 2, 1, 0, 1
就必须要排列成:
0, 1, 2, 1, 0, 1
如果不管Level字段的话就会变成:
0, 1, 1, 2, 0, 1

解决方案 »

  1.   

    也就是说Level字段是分组的升序
      

  2.   

    select * from testtable order by ID desc,Parent desc,Level asc;
      

  3.   

    lierq(李子) 你的不对,假设有这样的Level数据:
    0,1,1,2,1,2,3,0,1
    我要求得到的结果是
    0,1,2,3,1,2,1,0,1
      

  4.   

    不好意思,看错了  ^_^
    select * from testtable order by Parent desc,Level asc,ID desc;
      

  5.   

    如果你排序的顺序还有其它的要求,你可以将order by后面的字段及规则做一些调整,如第一要排的放在首位,依次排列,desc 是降,asc是升
      

  6.   

    但Level不是简单的升啊,可能你还是没有弄懂我的意思,ID和Parent是对了,但是Level不对:
    我比如Level有下列的值:
    0,1,1,2,2,3,3,4,5,1,2
    如果Level按照你的方法排列就是下面这样的结果:
    0,1,1,1,2,2,2,3,3,4,5
    但我要的结果是:
    0,1,2,3,4,1,2,3,1,2
      

  7.   

    mysql 没这功能。你可能通过。第一次查询,前两列并insert到一个临时表中。
    然后在第二次查询,第一个表,并与那个临时表数据输出
    insert into temp select * from testtable order by ID desc,Parent desc;
    将testtable -> temp中
    insert into temp2 select * from testtable Level 分组排序(我不知用什么可以做到,我没用过)
    将testtable -> temp2中
    select t.*,t2.* from temp t,temp2 t2
    就可以。
    你也可以存到数组中,然后输出。
    上面的SQL语句,不一定能运行。这是PL/SQL的。mysql好象没有insert into table select * from table;