为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建 GROUP BY SQL 语句

如何创建 GROUP BY SQL 语句

PHP
呼如林 2021-08-28 09:21:25
我有一个包含多个订单的表,当更新订单状态时,它会创建一个新记录,因此由于状态不同,1 个订单可能有多个记录。我有一个管理面板,管理员显然可以在其中看到所有订单,但我不想显示每条记录的每个更新,因为这很容易失控。所以我想拥有每个订单的最新记录。因此,如果订单号 100 有 7 条记录,我想显示订单号 100 的最新更新。我希望每个订单都是这样。我在网上阅读了一些内容并尝试了解 MySQL Group By 因为我相信这是实现我想要的最佳方式,但我似乎无法使其正常工作我不断收到一条消息说有错误用我的 SQL 语句$query = '(SELECT * FROM orders             WHERE `order_status` != "Order Complete"             ORDER BY `order_update` DESC             GROUP BY `order_number`)';  $orderList = $conn->query($query);这是我得到的错误你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在“GROUP BY”附近使用的正确语法order_number我应该提供我的列结构。所以我有一个 ID 列、一个订单号列、一个订单状态列,最后是一个订单日期列。所以我确定最新状态的方法是获取订单日期(设置为时间戳)。编辑 我想实现我在问题中提出的问题,但它在一个循环中。我循环遍历并将其全部显示在表格中,因此可能有 100 个不同的订单,这意味着 100 个不同的订单号,但我只想显示我可以使用“订单日期”列确定的每个订单的最新状态。另外我使用 PHP 来构建/执行查询
查看完整描述

3 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

首先,正如上面评论中提到的,您可以解决错误问题,GROUP BY 总是在 ORDER BY 之前。

其次,我们需要关于您拥有的列的更多数据?也许你有订购的时间和日期?你如何确定哪个订单是最新的?

沿着这些线的东西怎么样

$query = '(SELECT DISTINCT id, order_number, order_status, MAX(order_date) 
           FROM orders 
           WHERE `order_status` != "Order Complete"  
           ORDER BY `order_update` DESC, MAX(order_date)'; 
$orderList = $conn->query($query);

只需将其编辑为 PHP 语法,因为我不熟悉它


查看完整回答
反对 回复 2021-08-28
?
慕容3067478

TA贡献1773条经验 获得超3个赞

$query = '(SELECT * FROM orders 
           WHERE `order_status` != "Order Complete"           
           GROUP BY `order_number`           
           HAVING `order_update`=MAX(`order_update`))';


查看完整回答
反对 回复 2021-08-28
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

我显然不能 100% 知道您要查找的内容,但是您可能无需使用GROUP BY子句即可实现这一目标。您通常只会GROUP BY在使用聚合函数(COUNT、SUM等)时使用。这是一种表达“嘿,我想要这些特定列的计数、总和等”的方式。


您的查询可能更接近于:


SELECT *

FROM orders

WHERE order_status != 'Order Complete' -- Consider revising, maybe just a boolean?

    AND order_number = 100

ORDER BY order_update DESC

LIMIT 1;

根据您的 DBMS、列名等,您的查询可能会有很大差异。请随意评论更多信息,我可以为您提供更多帮助:)


编辑:刚刚注意到您确实将 MySQL 列为您的 DBMS。我的错。这个查询应该足够了,也许有一些小的调整。


查看完整回答
反对 回复 2021-08-28
  • 3 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信