繁体   English   中英

mysql查询parent_id命令问题

[英]Mysql query parent_id order problem

SELECT * FROM `websiteadmin_pm_categories` WHERE `username`='demo' LIMIT 0, 30 ; 

现在输出:

id parent_id active_en name_en description_en link_en username
47 0 1 DVD     demo
48 0 1 Spill     demo
49 0 1 Utstyr     demo
50 49 1 PC     demo
51 47 1 Barnefilmer   demo

应该:

id parent_id active_en name_en description_en link_en username
    47 0 1 DVD     demo
    51 47 1 Barnefilmer   demo
    48 0 1 Spill     demo
    49 0 1 Utstyr     demo
    50 49 1 PC     demo

这里的问题是ID和PARENT_ID,PARENT_ID应该出现在它们所属的ID下。

我不确定这种解决方案是否可行。 如果这在任何数据库中默认实现,我将感到非常惊讶。

这种解决方案应该出现在显示逻辑中而不是查询中,因为数据与ID和PARENT_ID之间的关系无关

此查询完全可以执行您想要的操作,但是此查询仅执行一级父/子层次结构……如果您想进行更深层的嵌套,它会变得更复杂,但可以进行到第三级(我实际上是这样做的今天早些时候)。

select *
   from 
      websiteadmin_pm_categories w1
         left join websiteadmin_pm_categories w2
            on w1.parent_id = w2.id
   WHERE
      w1.username = 'demo'
   order by
      case when w1.parent_id = 0 then w1.id else w1.parent_id end,
      w1.parent_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM