mysql - 复杂的多列mysql order by

标签 mysql sql-order-by multiple-columns

我有一个产品数据库,其中的产品按受欢迎程度 (number_sold) 排序。问题是许多热门产品都缺货了。我想按 number_sold 排序,其中 in_stock 至少为 1,然后显示缺货产品(仍然按 number_sold 排序)。

示例数据:

Blue Car - stock 0 - sold 8
Red Car - stock 2 - sold 4
Yellow Car - stock 0 - sold 5
Tan Car - stock 8 - sold 1
Purple Car - stock 1 - sold 2

我想按以下顺序显示:

1) Red
2) Purple
3) Tan
4) Blue
5) Yellow

这可以在一个 MySQL 查询中实现吗?

最佳答案

你可以使用

select * from product order by (in_stock >0) desc, number_sold desc

Demo

关于mysql - 复杂的多列mysql order by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21960011/

相关文章:

c# - GroupBy,然后根据 C# 中的组对另一个列表进行排序

sql - ORDER BY 仅适用于列别名

r - 为通过引用替换的 data.tables 编写高效函数

linux - 根据 linux 中第三列的条件交换两列

php - 如何制作社交网络徽章?

mysql - 更新表,其中其他列为 NULL

php - 检索接下来的 15 个 mysql 字段,即使它们的 ID 不是连续的

mysql - 按包含姓名的字段对结果进行排序

python - 将日期时间字符串转换为 pandas 数据框中日、月、年的新列

java - BCrypt.checkpw 不工作(Java)