我现在有一张 table :
我想不出一个查询可以实现我需要的“名称”列的顺序。
我需要它像这样:
广告->work_and_business->search_work->require_work->自由职业->运输->汽车->卡车->水->空气->...
所以,基本上我需要像 parent ->所有 child ,下一个 parent ->所有 child
有人可以帮忙吗?
编辑:表创建脚本:
CREATE TABLE categories (
id int(11) NOT NULL AUTO_INCREMENT,
level int(11) NOT NULL DEFAULT '1',
parent_category_id int(11) NOT NULL DEFAULT '1',
name varchar(255) DEFAULT NULL,
PRIMARY KEY (id),
KEY FK_categories_categories (parent_category_id)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8
Edit2:php 部分中的其他内容需要级别。在查询部分不需要
最佳答案
我尝试了您的示例数据,我认为这有效
SELECT distinct(ifnull(c1.name,c.name)) as name
from categories c
right JOIN categories c1 ON c.id=c1.parent_category_id
order by c.parent_category_id;
关于mysql - 查询父/子层次结构的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31215151/