mysql从同一表中选择类别e子类别

问题描述

我有下表称为“产品”:

id INT 11
product_name VARCHAR 255
category VARCHAR 255
subcategory VARCHAR 255
subsubcategory VARCHAR 255

我想在一个查询中读取所有类别,子类别和子子类别(每个类别一次)。

目前,我有以下查询,但是我不确定它是否有效:

SELECT category,subcategory,subsubcategory FROM products WHERE category != '' GROUP by category,subsubcategory ORDER by category ASC,subcategory ASC,subsubcategory ASC

输出应类似于:

clothes (main category)
clothes > pants (sub category)
clothes > pants > man (sub sub category)
clothes > pants > woman
clothes > skirt
jewelry
jewelry > necklace

解决方法

您可以这样做:

select category as rendered from products
union all 
select concat(category,' > ',subcategory) from products
union all 
select concat(category,subcategory,subsubcategory) from products
order by rendered

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...