Mysql系列(一):含逻辑处理的sql语句,如查询结果为null的转为0
2019-06-28 11:05
756 查看
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
将null转为0
在Java程序中调用sql语句时,如果返回结果是null,是非常容易引发程序抛出空指针异常的。
单字段结果由null转0
1、普通sql:
// 返回结果:null SELECT price FROM goods WHERE name='light';
2、IFNULL包含单个字段:
// 返回结果:0 SELECT IFNULL(price,0) price FROM goods WHERE name='light';
但使用IFNULL语句,如果where条件中的name值是不存在的,那么仍将返回null,例如:
3、IFNULL包含整个sql
// 返回结果:null SELECT IFNULL(price,0) price FROM goods WHERE name='aaa';
这时候,需要改写成下面的形式:
// 返回结果:0 SELECT IFNULL((SELECT price FROM goods WHERE name='aaa'),0) price;
在实际应用中,如果你确定where条件的值一定存在,使用写法2就可以了,否则要用写法3。
聚合结果由null转0
// 返回结果:0 SELECT IFNULL(SUM(price),0) FROM goods WHERE status=3;
其他,AVG、COUNT等用同样方式处理,而且,无论wher条件存在不存在,结果都是会返回0的。
相关文章推荐
- mysql五补充:SQL逻辑查询语句执行顺序(待完善)
- 详细剖析SQL查询(select语句)的每一步的逻辑处理---查询顺序及逻辑处理过程
- php中使用mysql_stmt(预处理语句)来处理select查询结果
- 如何解决:mysql中文查询不出结果(软件与SQL语句都正常)
- MySQL循环遍历执行查询SQL语句结果的方法
- DAY11-MYSQL补充之SQL逻辑查询语句执行顺序
- mysql 在sql查询语句结果中,数字加千分逗号
- MySQL解析器源码分析--对select语句中子查询处理逻辑的分析(一)
- MySQL的一个一条SQL语句查询所有不同种类产品的一部分结果实例的SQL语句
- hibernate+mysql中文查询不出结果,其他查询正常,SQL语句也正常
- Mysql 将数据库中的手机号码,以前4位+****+后三位整表查询处理 SQL语句
- mysql中查询字段为null或者不为null的sql语句怎么写?
- Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用
- 通过sql语句查询出来的结果字段没有到对应实体类时的处理方法
- MySQL循环遍历执行查询SQL语句结果的方法
- 关于linq语句与sql语句查询条件==null处理的奇妙现象
- MySQL-sql的逻辑查询处理
- LAMP开发精要(13):PHP中使用mysql_stmt(预处理语句)处理select查询结果
- sqlserver2005T-SQL查询语句的逻辑查询处理1
- MySQL解析器源码分析--对select语句中子查询处理逻辑的分析(二)