首页 > 解决方案 > Mysql - 按两列排序,但有一个条件

问题描述

我的数据库中的查询有问题。我使用 opencart 3.0.2.0 并在 model/catalog/product.php 中输入以下代码:

ORDER BY p.date_added DESC, p.quantity DESC

我想按类别显示产品,按 date_added DESC 排序(最新的在前),但数量 => 1 在前。但在最后一页,我还想查看数量为 0 的产品。

例如,我在一个类别中有 200 个产品,每页 24 个。只有 20 件缺货(数量 = 0),我想在最后一页查看那些没有库存的产品。我也想按 p.date_added 全部订购。

使用此代码 ( ORDER BY p.date_added DESC, p.quantity DESC),我看到的就像 ( ORDER BY p.date_added DESC)。那个“ p.quantity DESC”不起作用。

希望你能理解我。谢谢!

标签: mysql

解决方案


使用条件排序:

ORDER BY case 
  when p.quantity > 0 then p.date_added
  else null
end DESC, 
p.quantity DESC

推荐阅读