mysql - 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
”不起作用。
希望你能理解我。谢谢!
解决方案
使用条件排序:
ORDER BY case
when p.quantity > 0 then p.date_added
else null
end DESC,
p.quantity DESC
推荐阅读
- python - 可以用软件模拟网卡吗?
- python - 无法找到如何在 Visual Studio 2019 中安装 pandas 库
- position - 让页脚贴在屏幕底部
- java - 从火力基地检索信息
- java - sql, javax.persistence.criteria:检查一个用逗号分隔的字符串值与字符串列表的数据库表列
- go - 如何在 go-swagger 中使用代码 401 或 404 而不是 500 响应无效的不记名令牌
- arrays - 在 nlog(n) 时间内对整数数组进行排序而不使用比较运算符
- c# - 从服务器加载文件
- javascript - 查找数组的第一个元素并将其显示在 map 函数中但有警告 - React
- python - 如何用 Qt5 python 中的按钮替换全局变量?