MySQL的常用判断函数使用

导读:本篇文章讲解 MySQL的常用判断函数使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

首先在公司实习期间,真实的感受到了SQL没学好是多么难受的一件事,需求下来,自己想要的数据自己写不出复杂的SQL取不出数据,没有数据来源又谈何业务逻辑?然后决心恶补SQL,望大家一起共勉,学好SQL真的是做后台的基础之一啊。

 

先创建一个表模型,数据库大家随意,只要是MySQL的就行:

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `state` tinyint(4) DEFAULT NULL,-- 1:启用;2:禁用
  `type` tinyint(4) DEFAULT NULL,-- 1:普通员工;2:中层员工;3:高层员工
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '张三', '1', '1');
INSERT INTO `user` VALUES ('2', '李四', '1', '2');
INSERT INTO `user` VALUES ('3', '王五', '2', '3');
INSERT INTO `user` VALUES ('4', '赵六', '2', '2');
--------------------- 

case when 函数

这个函数有点类似switch case语句,如果你学过Java类似语言,这个肯定是很容易理解的

语法1:

CASE fieldname   #字段名
	WHEN value1 THEN result1       #value为字段返回值 result匹配字段返回值之后返回的结果
	WHEN value2 THEN result2
	WHEN value3 THEN result3
	……
	ELSE defaultresult             #默认返回值
END

案例1:

SELECT
	`id` '用户ID',
	`name` '用户名称',
	(
		CASE `state`
			WHEN 1 THEN '启用'
			WHEN 2 THEN '禁用'
			ELSE NULL
		END
	) '用户状态'
FROM
	`user`

MySQL的常用判断函数使用

语法2:

CASE
	WHEN condition1 THEN result1    #跟语法1的区别在于将表达式条件写到了condition的位置
	WHEN condition2 THEN result2
	WHEN condition3 THEN result3
	……
	ELSE defaultresult
END

案例2:

SELECT
	`id` '用户ID',
	`name` '用户名称',
	(
		CASE 
			WHEN `state`=1 THEN '启用'
			WHEN `state`=2 THEN '禁用'
			ELSE NULL
		END
	) '用户状态'
FROM
	`user`

MySQL的常用判断函数使用

if函数

case when 函数处理复杂逻辑判断比较常用,如果只是处理一次判断,更简单的方式是IF函数

语法:

IF(condition,result1,result2)

案例1:

SELECT
	`id` '用户ID',
	`name` '用户名称',
	IF(state=1,'启用','禁用') '用户状态'
FROM
	`user`

MySQL的常用判断函数使用

巧用case when

如果当前字段为空,查询结果返回“none”

1

select case when 字段 is null then 'none' else 字段 end  as 字段 from 表;

如果当前字段为空字符,查询结果返回“none”

1

select case when 字段= '' then 'none' else 字段 end  as 字段 from 表;

is null(expr) 函数

如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0

IFNULL (expr1,expr2) 函数:

假如expr1   不为   NULL,则   IFNULL()   的返回值为   expr1;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15230.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!