SQL查询进阶:WHERE条件、ORDER BY排序、LIMIT分页,新手必练 前言基础查询SELECT * FROM 表只能查全表数据实际开发中我们需要「筛选特定数据」「按规则排序」「分页展示」这就需要用到 WHERE、ORDER BY、LIMIT 三个核心关键字。本篇用前面创建的user表结合实操示例讲透三个关键字的用法、组合使用技巧新手跟着练就能掌握进阶查询能力。先插入测试数据确保示例可运行INSERT INTO user (name, age, gender, email) VALUES (张三, 20, 1, zhangsan163.com), (李四, 22, 1, lisi163.com), (王五, 19, 2, wangwu163.com), (赵六, 21, 1, zhaoliu163.com), (孙七, 23, 2, sunqi163.com), (周八, 20, 1, zhouba163.com);一、WHERE条件筛选查你想要的数据WHERE 用于指定查询条件只返回符合条件的数据是查询中最常用的关键字支持多种条件匹配。1. 等于/不等于 / ! / -- 1. 查性别为男gender1的用户 SELECT name, age FROM user WHERE gender 1; -- 2. 查年龄不等于20的用户两种写法都可以 SELECT name, age FROM user WHERE age ! 20; SELECT name, age FROM user WHERE age 20;2. 范围查询 / / / / BETWEEN ... AND ...-- 1. 查年龄大于20的用户 SELECT name, age FROM user WHERE age 20; -- 2. 查年龄在19~22之间的用户包含19和22 SELECT name, age FROM user WHERE age BETWEEN 19 AND 22; -- 等价于WHERE age 19 AND age 223. 模糊查询LIKE用于匹配包含特定字符的数据搭配通配符使用- %匹配任意0个或多个字符- _匹配任意1个字符。-- 1. 查名字包含“张”的用户 SELECT name FROM user WHERE name LIKE %张%; -- 2. 查名字以“李”开头的用户 SELECT name FROM user WHERE name LIKE 李%; -- 3. 查名字长度为2且第二个字是“三”的用户 SELECT name FROM user WHERE name LIKE _三;4. 多条件筛选AND / OR-- 1. 查性别为男且年龄20的用户AND同时满足 SELECT name, age FROM user WHERE gender 1 AND age 20; -- 2. 查性别为女或年龄20的用户OR满足一个即可 SELECT name, age FROM user WHERE gender 2 OR age 20;5. 空值/非空值查询IS NULL / IS NOT NULL-- 1. 查年龄为空的用户 SELECT name FROM user WHERE age IS NULL; -- 2. 查邮箱不为空的用户 SELECT name, email FROM user WHERE email IS NOT NULL;二、ORDER BY排序按规则整理数据ORDER BY 用于对查询结果进行排序默认是「升序ASC」可指定「降序DESC」支持多字段排序。1. 单字段排序-- 1. 按年龄升序排序从小到大ASC可省略 SELECT name, age FROM user ORDER BY age; -- 等价于ORDER BY age ASC -- 2. 按年龄降序排序从大到小 SELECT name, age FROM user ORDER BY age DESC;2. 多字段排序先按第一个字段排序第一个字段值相同时按第二个字段排序。-- 先按性别升序性别相同的按年龄降序 SELECT name, gender, age FROM user ORDER BY gender ASC, age DESC;三、LIMIT分页控制查询结果数量LIMIT 用于限制查询结果的条数常用于分页展示如页面只显示10条数据语法LIMIT 起始索引, 条数起始索引从0开始。1. 基础用法限制结果条数-- 查前3条用户数据起始索引0可省略 SELECT name, age FROM user LIMIT 3; -- 等价于LIMIT 0, 32. 分页用法指定起始索引-- 第1页显示前3条索引0-2 SELECT name, age FROM user LIMIT 0, 3; -- 第2页显示第4-6条索引3-5 SELECT name, age FROM user LIMIT 3, 3; -- 规律第n页起始索引 (n-1) * 每页条数四、组合使用WHERE ORDER BY LIMIT实战常用实际开发中三者经常组合使用先筛选、再排序、最后分页。-- 需求查性别为男年龄19的用户按年龄降序显示前2条 SELECT name, age FROM user WHERE gender 1 AND age 19 ORDER BY age DESC LIMIT 2;五、进阶查询避坑❌ 错误WHERE 条件写在 ORDER BY 后面语法错误WHERE必须在ORDER BY之前❌ 错误LIMIT 起始索引写反正确语法LIMIT 起始索引, 条数✅ 正确组合顺序固定SELECT → FROM → WHERE → ORDER BY → LIMIT。