php - mysql 组排序

标签 php mysql group-by

请帮我通过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/

相关文章:

php - 如何在另一个 php 脚本的后台运行 php 脚本(如更新按钮)

php - 从 PHP(使用 mysqli)为 MySQL 准备语句

php - PHP http 流的正确 header 和 mime_type

php - 如何在 PHP 中为不同的表发送两个查询?

MYSQL每小时​​数据内连接

javascript - AJAX 使用复选框删除多条记录

php - 尝试使用 UNION ALL 查询两个表时出错

mysql - 如何使用 mysqldump 保存 UTF8mb4 数据?

python - 使用 Pandas 的 Groupby df 列

python - 使用 python 进行 block 随机化?