簡體   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