首页 > 数据库 > SQL > 正文

SQL字段筛选怎么写_WHERE条件组合逻辑全解析【教学】

舞夢輝影
发布: 2025-12-22 22:41:02
原创
231人浏览过
SQL字段筛选用WHERE子句,通过逻辑运算符组合条件:单条件如age>18;多条件AND需全满足,OR满足其一;IN可简化多个OR;NOT需慎用NULL,判断NULL必须用IS NULL/IS NOT NULL。

sql字段筛选怎么写_where条件组合逻辑全解析【教学】

SQL字段筛选靠 WHERE 子句实现,核心是用逻辑运算符把多个条件组合起来,让数据库只返回符合全部(或部分)要求的数据行。

单条件筛选:最基础的写法

直接在 WHERE 后写一个表达式,比如:

SELECT * FROM users WHERE age > 18;

这表示只查年龄大于18的用户。注意字段名、操作符(>、=、!=、LIKE 等)和值之间要有空格,字符串值记得加单引号。

多条件 AND 连接:必须同时满足

AND 把多个条件串起来,所有条件都为真时整行才被选中:

  • SELECT * FROM orders WHERE status = 'paid' AND amount >= 100; —— 查已支付且金额不小于100的订单
  • 条件顺序不影响结果,但建议把过滤性更强的条件放前面(如索引字段),有助于提升查询效率
  • 可以嵌套括号明确优先级,比如 WHERE (type = 'vip') AND (score > 90 OR level = 'S')

多条件 OR 连接:满足任一即可

OR 表示“或者”,只要有一个条件成立,该行就入选:

  • SELECT name FROM products WHERE category = 'phone' OR category = 'tablet';
  • 注意 OR 的优先级比 AND 低,混用时务必加括号,否则容易出错:WHERE a=1 AND b=2 OR c=3 实际等价于 (a=1 AND b=2) OR c=3,不是你想的 a=1 AND (b=2 OR c=3)
  • 多个 OR 可考虑改用 IN 简化:WHERE category IN ('phone', 'tablet', 'laptop')

NOT 和 NULL 特殊处理:别踩坑

NOT 用于取反,但和 NULL 结合时要特别小心:

  • WHERE NOT (status = 'cancelled') 能筛出非取消状态,但不会包含 status 为 NULL 的行(因为 NULL = 'cancelled' 返回的是 UNKNOWN,NOT UNKNOWN 还是 UNKNOWN,不等于 TRUE)
  • 判断 NULL 必须用 IS NULLIS NOT NULL,不能用 = NULL 或 != NULL
  • 安全写法示例:WHERE (status != 'cancelled') OR (status IS NULL)

以上就是SQL字段筛选怎么写_WHERE条件组合逻辑全解析【教学】的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号