
前言学会了条件查询、模糊查询之后日常业务还有两个刚需场景查出来的数据杂乱无章想按年龄、时间、金额从小到大 / 从大到小排序数据有成千上万条一次性加载全部卡死需要分页展示一页只展示 10 条、20 条搞不清升序、降序关键字写排序经常反着面试高频考点多字段排序、分页原理、LIMIT 偏移量坑点经常答不上做后台列表、APP 列表、报表分页全部离不开ORDER BY和LIMIT。本篇用大白话 实战案例手把手带你掌握单字段排序、多字段排序、升序降序、分页查询、偏移量分页同时总结职场高频避坑点学完直接能上手做业务列表分页。知识点一、ORDER BY 排序语法ORDER BY对查询结果按指定字段进行升序 / 降序排列。 基础语法sqlSELECT 字段列表 FROM 表名 WHERE 条件 ORDER BY 字段名 [ASC|DESC];ASC升序从小到大默认可以省略DESC降序从大到小必须手动写二、单字段排序只根据一个字段进行排序比如按年龄、注册时间、金额排序。三、多字段排序先按第一个字段排序第一个字段值相同时再按第二个字段排序。 适用场景先按部门排序同部门再按年龄排序。四、LIMIT 分页语法LIMIT限制返回数据行数实现分页效果MySQL 专属高频用法。 两种格式只写一个参数LIMIT n只返回前 n 条数据写两个参数LIMIT offset, rowsoffset偏移量从第几条开始从 0 开始计数rows每页展示多少条分页通用公式第 page 页每页 size 条LIMIT (page-1)*size , size通俗类比 实例表格通俗类比ORDER BY好比排队点名可以按身高从矮到高、从高到矮站队多字段排序先按班级站队同一个班里再按身高排序LIMIT只挑前几个人出来或者从第几个人开始往后挑几个人实现一页一页看。演示数据表user 用户表表格idnameagegendersalary1张三25男80002李四22女72003王五28男95004赵六25女86005孙七30男12000SQL 代码演示1. 单字段升序ASC 默认省略sql-- 按年龄升序从小到大 SELECT * FROM user ORDER BY age ASC; -- ASC 可省略默认就是升序 SELECT * FROM user ORDER BY age;2. 单字段降序 DESCsql-- 工资从高到低排序 SELECT * FROM user ORDER BY salary DESC;3. 多字段排序sql-- 先按年龄升序年龄相同再按工资降序 SELECT * FROM user ORDER BY age ASC, salary DESC;4. LIMIT 限制返回条数sql-- 只取前3条数据 SELECT * FROM user LIMIT 3;5. 分页查询实战每页 2 条第 1 页LIMIT 0,2第 2 页LIMIT 2,2sql-- 第1页每页2条 SELECT * FROM user LIMIT 0,2; -- 第2页每页2条 SELECT * FROM user LIMIT 2,2;6. 条件 排序 分页 组合实战sql-- 查询男性用户按工资降序取前3条 SELECT * FROM user WHERE gender 男 ORDER BY salary DESC LIMIT 3;易错 / 避坑点❌ 忘记LIMIT 偏移量从 0 开始✅ 正解第一条数据偏移量是 0不是 1分页公式一定要记牢。❌ 多字段排序只写一个 DESC ✅ 正解每个排序字段的升降序单独指定不写默认 ASC。❌ 把 ORDER BY 写在 WHERE 前面 ✅ 正解固定顺序SELECT → FROM → WHERE → ORDER BY → LIMIT。❌ 大表深度分页用LIMIT 100000,10✅ 正解偏移量越大越慢生产大表禁止高偏移量分页要用主键优化分页。❌ 排序字段存在 NULL 值排序结果错乱 ✅ 正解排序时 NULL 默认排在最前面业务要注意兼容处理。小结ORDER BY实现排序ASC 升序、DESC 降序ASC 可省略支持单字段排序、多字段组合排序满足复杂业务列表LIMIT既能限制条数又能通过偏移量,条数实现分页分页公式LIMIT (页码-1)*每页条数 , 每页条数标准执行顺序WHERE 筛选 → ORDER BY 排序 → LIMIT 分页日常后台列表、APP 分页、报表排行、面试考点全靠这两个语法。思考题思考题 1ORDER BY 默认是升序还是降序关键字是什么答案 默认升序 ASC降序关键字是DESC。思考题 2写出 SQL按工资从高到低排序只取前 3 名员工。答案sqlSELECT * FROM user ORDER BY salary DESC LIMIT 3;思考题 3一共 5 条数据每页显示 2 条第 3 页怎么写 LIMIT答案 页码 3每页 2 条 偏移量 (3-1)*2 4 语句sqlSELECT * FROM user LIMIT 4,2;