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

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

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

How Can I Exclude NULL Values from MySQL SELECT Statements?

过滤掉 MySQL SELECT 查询中的 NULL

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

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

1

2

3

<code class="language-sql">SELECT *

FROM your_table

WHERE YourColumn IS NOT NULL;</code>

登录后复制

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

1

2

3

<code class="language-sql">SELECT *

FROM your_table

WHERE NOT (YourColumn <=> NULL);</code>

登录后复制

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

1

2

3

4

5

6

7

<code class="language-sql">SELECT val1 AS val

FROM your_table

WHERE val1 IS NOT NULL

UNION ALL

SELECT val2

FROM your_table

WHERE val2 IS NOT NULL;</code>

登录后复制

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

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

1

2

3

4

5

6

7

<code class="language-sql">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;</code>

登录后复制

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

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

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