专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

mysql 查询if使用,ifnull函数使用方法_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 19:56:15       共计:3595 浏览
mysql 查询if使用,ifnull函数使用方法?

IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数。 否则,IFNULL函数返回第二个参数。

两个参数可以是文字值或表达式。

一、语法格式

IFNULL(expression_1,expression_2);

如果expression_1不为NULL,则IFNULL函数返回expression_1; 否则返回expression_2的结果。

如果要返回基于TRUE或FALSE条件的值,而不是NULL,则应使用IF函数。

二、简单示例

SELECT IFNULL(1,2); -- returns 1

SELECT IFNULL('',2); -- returns ''(空字符串也是有值)

SELECT IFNULL(0,2); -- returns 0(0也是有值)

SELECT IFNULL(NULL,'暂无数据'); -- returns '暂无数据'

上述四个示例的结果表明,查询的字段不管是0还是空字符串,都不为null,会原样输出,只有查询的字段为null时,才会使用第二个参数,即自定义的文本或者数字显示。

三、应用场景

当两个表关联查询时,如果A表为主表,B表为关联表,且B表无数据时,如果为null的话我们可以换个文案显示。

例:A表是学生表

CREATE TABLE `student` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`nick` VARCHAR(20) NOT NULL,

`class_id` INT(11) NOT NULL DEFAULT 0,

PRIMARY KEY (`id`) USING BTREE

);

INSERT INTO student(nick, class_id) VALUES ('xiaoming', 1),('xiaohong', 2),('xiaogang', 0)

B表是班级表

CREATE TABLE `class` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` VARCHAR(20) NOT NULL,

PRIMARY KEY (`id`) USING BTREE

);

INSERT INTO class(name) VALUES ('一班'),('二班'),('三班')

当我们关联查询时,已经分过班级的学生显示班级,暂无班级的学生显示暂无班级,这种业务场景下就要使用if null条件

例:SELECT s.id as '学生id',s.nick as '学生昵称',IFNULL(c.name,'暂无班级') as '班级' FROM student s LEFT JOIN class c on s.class_id = c.id

查询结果为:

学生id 学生昵称 学生班级

1 xiaoming 一班

2 xiaohong 二班

3 xiaogang 暂无班级

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:查询mysql表信息,mysql数据库如何获得用户数据库登录IP等信息_数据库 | ·下一条:mysql数据库同步,sqlserver数据实时同步到mysql_数据库

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有