第4篇:《ORDER BY 是你妈喊你排队吃饭:SQL里的排序秘诀》

79 阅读2分钟

🥇 第4篇:《ORDER BY 是你妈喊你排队吃饭:SQL里的排序秘诀》

关键词ORDER BYASCDESCLIMIT、组合排序、排序+筛选搭配

🎬 开场:当你妈喊你排队吃饭

小孩不听话,妈妈总得说:
“先让年纪小的吃,哥哥排后面!”
这个动作——让某种“顺序”决定谁先来,SQL 里就叫:
ORDER BY
今天我们就搞懂:SQL 里的排序到底怎么玩!


1️⃣ 先上个表:我们的房源数据

假设我们有如下表 houses

idtitlepriceareadistrict
1精装修一居室180032天河
2押一付一两房250048海珠
3大三房带电梯360080天河
4电梯一房180030越秀
5简装小户型150025天河

2️⃣ ORDER BY 的基本语法

SELECT * FROM 表名
ORDER BY 列名 ASC|DESC;
  • ASC:升序(默认),从小到大
  • DESC:降序,从大到小

✅ 实例:按价格升序排列

SELECT title, price FROM houses
ORDER BY price;

✅ 实例:按面积降序排列(最大房在最前)

SELECT title, area FROM houses
ORDER BY area DESC;

3️⃣ 排序 + WHERE 筛选联合使用

情景:我想找出价格低于 3000 元的房子,按面积从大到小排个序

SELECT title, price, area FROM houses
WHERE price < 3000
ORDER BY area DESC;

4️⃣ LIMIT:限制条数(Top N 热门榜单)

SELECT title, price FROM houses
ORDER BY price DESC
LIMIT 3;

👉 结果:返回最贵的前三套房子


5️⃣ 组合排序(多列排序)

有时第一条件相同,就要看第二条件
情景:先按 price 升序,如果价格一样再按 area 降序:

SELECT * FROM houses
ORDER BY price ASC, area DESC;

🧠 排序口诀来了:

ORDER BY 是排序,ASC 升序来排起;
DESC 降序大在前,LIMIT 限个数靠你;
多个字段轮流看,组合排序最霸气!


🛠 小练习:快试试这些

  1. 找出最小的三套房子(按面积)

    SELECT * FROM houses
    ORDER BY area ASC
    LIMIT 3;
    
  2. 找出“天河区”最贵的两套房

    SELECT * FROM houses
    WHERE district = '天河'
    ORDER BY price DESC
    LIMIT 2;
    
  3. 所有房源按价格升序、同价时面积大的排前

    SELECT * FROM houses
    ORDER BY price ASC, area DESC;
    

🪧 小贴士

  • ORDER BY 一定在 WHERE 后面
  • LIMIT 总是放在最后
  • 排序字段最好明确写是升还是降,避免混淆
  • 组合排序用 , 分隔多个字段