mysql 非空查询

表 T(a,b,c) ,查询出A,B,C的值,当A的值是NULL时,显示为 0


SELECT ifnull(a,0) , b , c  FROM T ;

说明:

1、查询字段值为空的语法:where <字段名> is null

2、查询字段值不为空的语法:where <字段名> is not null

select company_id,company_name from adr_company
where company_name is not null
### 如何在 MySQL查询字段 在 MySQL 数据库中,`IS NOT NULL` 是用于筛选值的关键字。当执行查询操作并希望仅获取特定列不为的数据记录时,可以在 `WHERE` 子句后面加上该条件来实现这一目的[^1]。 例如,在名为 `test` 的表中有这样一个场景:假设存在一列表示出生日期的字段叫作 `t_birth` ,如果想要找出所有具有有效出生日期(即不是NULL)的人的信息,则可以构建如下 SQL 语句: ```sql SELECT * FROM test WHERE t_birth IS NOT NULL; ``` 上述命令会返回那些 `t_birth` 列含有实际数据而缺的所有行项[^5]。 对于统计某列有多少条目是的情况,可以通过组合使用聚合函数 COUNT() 和 CASE WHEN 结构完成更复杂的逻辑判断;不过最简单的方式还是直接利用 SUM 函数配合 IF 或者直接用COUNT加IS NOT NULL 来达成目标[^4]。 ```sql -- 方法一 使用SUM+IF SELECT SUM(IF(t_birth IS NOT NULL, 1, 0)) AS non_null_count FROM test; -- 方法二 更简洁的方式 SELECT COUNT(*) as total_rows , COUNT(t_birth) as non_null_fields FROM test ; ``` 这里需要注意的是,第二段代码不仅给出了总的行数 (`total_rows`) 还有指定列里边的数量(`non_null_fields`) 。因为 COUNT 聚合函数默认不会计算 NULL 值,所以它实际上已经实现了只对项目进行计数的效果。 #### 注意事项 - 如果要确保某些重要信息始终被填充而不是留白的话,在创建数据库结构之初就应该设置好相应的约束条件比如NOT NULL,默认值等。 - 对于字符串类型的字段而言,“” (两个双引号之间没有任何字符)虽然看起来像是白但实际上并不等于 NULL,因此有时候还需要额外考虑去除这些情况下的“假阳性”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值