一个表:
id parent_id value
1 0 0
2 0 0
3 1 1
4 2 1
5 1 2要求输出:id
1
5
3
2
4就是先输出ID,再输出按value排序的parent_id=id的行。
谢谢

解决方案 »

  1.   

    1 是5 3 的parent 2是4的parent
      

  2.   


    能把 5 ,3,4,2的VALUE写出来说明一下你的排序规则吗?
      

  3.   

    id parent_id value
    1  0         0
    2  0         0
    3  1         1
    4  2         1
    5  1         2要求输出:id
    1 1的parent_id为0
    5 1是5的parent_id 同时,5的value值为2,将所有parent_id为1的行倒序排列,5排第一个
    3 3的value为1,比5的value1要小,所以排第2
    2 OK,上面所有parent_id为1的都列完了,现在开始列下一个 parent_id为0的行
    4 这个的parent_id为2,所以列在2后面谢谢楼上的回复,不知道这样问是否就是“提问的智慧”,再次感谢回复
      

  4.   

    mysql> select * from t_yifanwu;
    +------+-----------+-------+
    | id   | parent_id | value |
    +------+-----------+-------+
    |    1 |         0 |     0 |
    |    2 |         0 |     0 |
    |    3 |         1 |     1 |
    |    4 |         2 |     1 |
    |    5 |         1 |     2 |
    +------+-----------+-------+
    5 rows in set (0.03 sec)mysql> select id
        -> from t_yifanwu
        -> order by if(parent_id=0,id,parent_id),parent_id,value desc;
    +------+
    | id   |
    +------+
    |    1 |
    |    5 |
    |    3 |
    |    2 |
    |    4 |
    +------+
    5 rows in set (0.00 sec)mysql>