mysql 多级分类_数据库多级分类相关行排列在一起的查询
我用的數據庫是mysql。
在做后臺分類管理的時候遇到這樣一個需求
就是將分類以樹形菜單的方式展現出來。
我的導航欄的表在數據庫中是這樣的
然后,經過初步的sql查詢,實現的效果是下面這樣的,下邊有sql語句select table1.n_id ,table1.n_name ,
table2.n_id as 'father_id',table2.n_name as 'father_name'
from nav as table1 left join nav as table2
on table1.n_pre=table2.n_id
查詢效果:
但是我想要的效果是與分類相關的行放在一起。
簡單來說就是第三行和第四行互換一下!
我首先嘗試使用了分組,但是效果非常不理想。
然后又打算用排序來重新排一下,也是不可能的,一定是兩個father_name為null的在一起。
后來想起自己曾經接觸過的IFNULL函數還有CONCAT函數。
于是就有了下面的語句,下面加上的意思就是將 一級分類和二級分類都有一個統一的father_name,因為一級分類不存在father_name,所以將其進行concat函數進行連接。select table1.n_id ,table1.n_name ,
table2.n_id as 'father_id',table2.n_name as 'father_name',
concat(IFNULL(table2.n_name,table1.n_name),'') 'nav_group'
from nav as table1 left join nav as table2
on table1.n_pre=table2.n_id
order by nav_group desc
這樣就實現了下面的效果,滿足了我的相關行排列在一起的需求。
總結
以上是生活随笔為你收集整理的mysql 多级分类_数据库多级分类相关行排列在一起的查询的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: mysql 二进制转字符串_MySql字
- 下一篇: mysql不用left join_MyS
