首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双域条件下的MySQL排序

问双域条件下的MySQL排序
EN

Stack Overflow用户
提问于 2015-09-23 14:45:39
回答 1查看 1.1K关注 0票数 0

我在创建按以下逻辑排序的select查询时遇到了问题:

代码语言:javascript
复制
SELECT * FROM Products WHERE 1 ORDER BY Stock > 0, Price DESC

表样:

代码语言:javascript
复制
+---------+-------+-------+
| Product | Price | Stock |
+---------+-------+-------+
| Car     |  3500 |    30 |
| Boat    |  7500 |     6 |
| Bike    |   150 |   220 |
| Plane   | 55000 |     0 |
+---------+-------+-------+

期望的结果是,如果股票价值大于0,表将按价格排序。

因此,结果应该是:

代码语言:javascript
复制
+---------+-------+-------+
| Product | Price | Stock |
+---------+-------+-------+
| Boat    |  7500 |     6 |
| Car     |  3500 |    30 |
| Bike    |   150 |   220 |
| Plane   | 55000 |     0 |
+---------+-------+-------+

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-23 14:47:25

MySQL中比较的结果是0或1。所以Stock > 0是1,如果是true。还有1和greather 0。所以要么用

代码语言:javascript
复制
ORDER BY Stock = 0 ASC, Price DESC

或

代码语言:javascript
复制
ORDER BY Stock > 0 DESC, Price DESC

或

代码语言:javascript
复制
ORDER BY case when Stock > 0
              then 1
              else 2
         end, 
         Price DESC
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32742718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档