【问题标题】:How to show results based on name/category?如何根据名称/类别显示结果?
【发布时间】:2019-07-01 18:26:58
【问题描述】:

我有一个包含这些值的数据库。

+----+--------+-----------+
| id | value  | category  |
+----+--------+-----------+
|  1 | value1 | category1 |
|  2 | value2 | category1 |
|  3 | value3 | category2 |
|  4 | value4 | category3 |
+----+--------+-----------+

我希望输出是这样的:

Category1: 
value1 
value2

Category2: 
value3

Category3: 
value4

我知道我可以使用WHERE category = category1 .. 等,但是如何使脚本自动对所有值进行分组并以这种方式显示它们?

【问题讨论】:

  • GROUP_CONCAT 函数将帮助您生成值的结果。您将在类别列上使用 GROUP BY 来获取结果
  • 它只显示所有类别的第一个值,而我想要它们的每个值!
  • 在下面查看我的答案。如上所述,GROUP_CONCAT() 函数将以逗号分隔格式返回所有值。谷歌该功能以获得更多选择。

标签: php html mysql categories dynamic-queries


【解决方案1】:

使用函数 GROUP_CONCAT() 获取逗号分隔的值列表,并使用 GROUP BY 子句收集每个类别的值:

SELECT
    `category`,
    GROUP_CONCAT(`value`) as `values`
FROM `tablename`
GROUP BY `category`
ORDER BY `category`

【讨论】:

  • complete 错误信息是什么?您是否替换了正确的列名和表名?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多