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

关于Mysql - 按两列排序,但有一个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56426748/

相关文章:

java - 如何向依赖于同一注册表的其他两个字段的字段添加新值?

php - Flex w/AMF 返回结果缓慢

php - 按组打印 php 数组项

java - 从mysql数据库获取坐标数组并添加为标记到android中的Google map

mysql - 如何使用两个索引对 MySQL 表进行分区

mysql - 复杂的 group-by MySQL 语句

php - 表单数据未到达我的数据库

mysql - 在 Rails 中计算日期范围内每天记录数的有效方法,无需每天进行一次查询

mysql - mysql中如何写IF语句

mysql 以一对多、多对一关系连接并且没有冗余数据