MySQL ORDER BY 一列和第二列

标签 mysql sql

我的问题不同,但我读过这篇类似的帖子: How can I order by two columns, if result is equal, consider another column?

我对 2 列感兴趣:

  • 生产 ID
  • 日期

查询是:

SELECT BATCH_ISSUED.production_id, MANUFACTURE_DATE.date
FROM BATCH_ISSUED LEFT JOIN
     MANUFACTURE_DATE
     ON BATCH_ISSUED.production_id = MANUFACTURE_DATE.production_id
WHERE MANUFACTURE_DATE.active='1'
ORDER BY MANUFACTURE_DATE.date ASC,BATCH_ISSUED.production_id ASC

这会获取数据并按日期(旧>新)排序,然后按id排序,但它需要将所有相同的id分组在一起,这可能意味着GROUP BY 需要以某种方式包含在内。

数据示例:

195 2017-10-10
196 2017-10-10
196 2017-10-10
258 2017-10-10
258 2017-10-10
189 2017-10-12
190 2017-10-12
258 2017-10-12
212 2017-10-13
213 2017-10-13

应该这样呈现,例如 ID 258 按日期顺序放在一起:

    195 2017-10-10
    196 2017-10-10
    196 2017-10-10

    258 2017-10-10
    258 2017-10-10
    258 2017-10-12

    189 2017-10-12
    190 2017-10-12
    212 2017-10-13
    213 2017-10-13

非常感谢您的建议!

最佳答案

按顺序颠倒顺序就足够了:

 ORDER BY BATCH_ISSUED.production_id DESC, MANUFACTURE_DATE.date ASC,

关于MySQL ORDER BY 一列和第二列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46692738/

相关文章:

mysql - 在 phpMyAdmin 中设置外键

sql - 消息8114,级别16,状态5,过程sp_product_listing,第0行将数据类型varchar转换为datetime时出错

php - 选择多个MySQL表并检索不同的数据

mysql 计数分组

mysql - Debian,mysql : How can I tune these values

mysql - 将平均月份值插入到另一个表中,但应防止当前月份平均值传递到表中

mysql - 两列都可以为空时的比较

php - 从 MySQL 查询而不是表中获取

sql - 将一个 sql 查询附加到另一个

sql - 计算特定日期的计算机使用情况 [SQL]