【问题标题】:PHP MySQL - Group By with Order By. Ordering Within GroupPHP MySQL - 按顺序分组。组内订购
【发布时间】:2012-08-03 15:46:22
【问题描述】:

这是我的桌子

+----+---------------+-------+
| id | product name  | cat   |
+----+---------------+-------+
| 0  | product A     | 1     |
| 1  | product B     | 2     |
| 2  | product C     | 1     |
| 3  | product D     | 3     |
+----+---------------+-------+

我想要实现的输出是:

产品 A
产品C
产品B
产品D

这是我正在处理的查询:

SELECT * FROM products GROUP BY cat ORDER BY id ASC

现在我对 MySQL 非常缺乏经验,简而言之,我正在尝试对我的结果进行分组,并在他们的组中排序。

上面的查询(逐字)给了我一个语法错误。

经过一番研究,(看到一些类似问题的帖子)我想我可能需要使用 JOIN 来完成这个功能。但我不知道从哪里开始。

有人可以帮忙吗?

【问题讨论】:

    标签: mysql join group-by sql-order-by


    【解决方案1】:

    不确定是否需要在此处分组。试试这个:

    SELECT * from products ORDER BY cat ASC, id ASC

    这首先按 cat 排序,然后按 id 排序。请注意,您应该在 cat 字段上有一个索引来优化此查询(我已经假设 id 是主键)。

    【讨论】:

      【解决方案2】:

      在我看来你需要

      SELECT * FROM products ORDER BY cat ASC
      

      得到你正在寻找的输出。

      【讨论】:

        猜你喜欢
        • 2018-11-03
        • 1970-01-01
        • 2011-06-08
        • 2020-11-21
        • 1970-01-01
        • 2022-10-12
        • 2011-06-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多