首页 > 数据库 > mysql教程 > 如何从 MySQL SELECT 语句中排除 NULL 值?

如何从 MySQL SELECT 语句中排除 NULL 值?

Susan Sarandon
发布: 2025-01-15 16:37:43
原创
241 人浏览过

How Can I Exclude NULL Values from MySQL SELECT Statements?

过滤掉 MySQL SELECT 查询中的 NULL

问题:如何使用 MySQL SELECT 语句仅检索非空值?

标准 MySQL SELECT * 语句包括所有列,甚至包含具有 NULL 值的列。 要仅检索非空数据,请使用 IS NOT NULL 条件:

SELECT * 
FROM your_table
WHERE YourColumn IS NOT NULL;
登录后复制

此查询返回 YourColumn 不包含 NULL 的行。 MySQL 还支持空安全相等运算符的否定,尽管这不是标准 SQL:

SELECT *
FROM your_table
WHERE NOT (YourColumn <=> NULL);
登录后复制

处理多个列需要不同的策略。一种方法使用多个 SELECT 语句和 UNION ALL:

SELECT val1 AS val
FROM your_table
WHERE val1 IS NOT NULL
UNION ALL
SELECT val2
FROM your_table
WHERE val2 IS NOT NULL;
登录后复制

这种方法单独检查每一列并组合结果。 然而,由于多次表扫描,它可能效率低下。

为了避免多次扫描,请考虑使用带有交叉连接的 CASE 语句:

SELECT CASE idx
         WHEN 1 THEN val1
         WHEN 2 THEN val2
       END AS val
FROM your_table
CROSS JOIN (SELECT 1 AS idx UNION ALL SELECT 2) t
HAVING val IS NOT NULL;
登录后复制

这将从每行的 val1val2 中选择第一个非空值,并将其分配给 val 列。

以上是如何从 MySQL SELECT 语句中排除 NULL 值?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板