社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MySQL 8.0按条件订购

coding-scripting • 3 年前 • 1301 次点击  

我想从products表中获取数据。我必须按价格排序,但首先它显示的是那些价格在给定的最大值和最小值之间的人。

标题 价格
刺激1 10
Prod 2 8.
刺激3 15
刺激4 11
刺激5 12
Prod 6 20
Prod 7 24

如果最小值=10,最大值=15

结果应该是这样的顺序: 产品1、产品4、产品5、产品3、产品2、产品6、产品7

谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131491
 
1301 次点击  
文章 [ 3 ]  |  最新文章 3 年前
SomeGuy
Reply   •   1 楼
SomeGuy    3 年前

你也可以简单地将2个选项组合成一个 协会 .

select * from test where value >= 10 and value <= 15
union
select * from test where value < 10 or value > 15

Select Demo

nbk
Reply   •   2 楼
nbk    3 年前

您可以使用CASE HWEN来确定这两个组。

价格中间有1英镑

SELECT * FROM product
ORDER By CASE WHEN `price` BETWEEN 10 AND 15 Then 1 
ELSE 2 END ASC, `price` ASC
Title  | price
:----- | ----:
Prod 1 |    10
Prod 4 |    11
Prod 5 |    12
Prod 3 |    15
Prod 2 |     8
Prod 6 |    20
Prod 7 |    24

db<>不停摆弄 here

forpas
Reply   •   3 楼
forpas    3 年前

可以按布尔表达式排序 price BETWEEN 10 AND 15 DESC 先是 price :

SELECT *
FROM tablename
ORDER BY price BETWEEN 10 AND 15 DESC, price;

看到了吗 demo .