You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL条件查询:无需UNION实现员工表特定筛选需求

无需UNION的替代查询方案

当然有不用UNION ALL的写法啦!我们可以直接在WHERE子句里通过组合逻辑条件来实现需求,代码更紧凑,逻辑也一目了然。

直接看最终的查询语句:

SELECT * 
FROM employee 
WHERE 
    dept = 'customer service'
    OR 
    (dept = 'marketing' AND phone IS NOT NULL);

逻辑说明

这个语句的筛选规则完全匹配你的需求:

  • 对于customer service部门:只要部门字段匹配,就保留所有记录(包括phone为NULL的条目)
  • 对于marketing部门:只有当部门匹配且phone字段不为NULL时,才会被选中

和你原来用UNION ALL拆分两个查询再合并的写法相比,这个单查询的方式执行效率通常也不会差(数据库优化器大多能处理好这类逻辑),而且代码更简洁,维护起来也更方便。

内容的提问来源于stack exchange,提问作者Great Saiyaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 10:32:47