请帮我通过php对mysql进行排序。 我的表格如下所示:
-----------------------------------------------------------
-title |category |sub_category | content
-----------------------------------------------------------
-ABC |music |album |12345667
-----------------------------------------------------------
-Indie |music |null |92384923
-----------------------------------------------------------
-rock |music |null |02328232
-----------------------------------------------------------
-CAD |music |album |somedata
-----------------------------------------------------------
-DDD |music |album |somedata1
-----------------------------------------------------------
-folk |music |null |92384923
----------------------------------------------------------
我想要像下面这样检索结果
select * from table where category LIKE 'music' GROUP BY sub_category
我不想将 null 作为组,所以我应该得到如下结果
-indie
-rock
-folk
-ABC(album)
在上面的结果中,indie,rock,flok
在 sub_category 列中具有空值,并且 ABC 被分组
获得这样结果的正确 mysql 查询是什么?可能吗?
最佳答案
为了最初的愿望:
select *
from table
where category = 'music'
group by ifnull(sub_category, title)
新的愿望:
select
case when sub_category is null then
title
else
concat(title, '(' , sub_category, ')')
end as result
from table
where category = 'music'
group by ifnull(sub_category, title)
这将为您提供专辑
的任何标题。它可能是 ABC 或任何其他。
关于php - mysql 组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25435351/