栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mysql case when then函数使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mysql case when then函数使用

一、概念

功能描述: 判断数据显示代表的含义(类似java if)
语法:

CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
二、实战 创建和数据
CREATE TABLE `user`  (
  `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `account` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '账号',
  `password` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
  `status` bit(1) NULL DEFAULT NULL COMMENT '状态:1正常,0禁用',
  `create_date` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATe CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_date` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间'
)

INSERT INTO `user` VALUES (1, 'lanys', '123', b'1', '2022-06-10 11:03:34', '2022-06-10 11:03:34');
INSERT INTO `user` VALUES (2, 'Tom', '123', b'1', '2022-06-10 11:03:35', '2022-06-10 11:03:35');
INSERT INTO `user` VALUES (3, 'David', '111', b'0', '2022-06-10 11:03:38', '2022-06-10 11:03:38');
案例一

需求: 将数据表中账号信息状态用中文展示(状态:1 -> 正常, 0-> 禁用)。
实现效果:

语句:

SELECT id,account,PASSWORD,
	( CASE STATUS WHEN 1 THEN '正常' WHEN 0 THEN '禁用' ELSE NULL END ) AS STATUS 
FROM `user`
案例二

需求: 将表数据根据创建时间(create_date)排序统计做了什么(类似时间线)。
实现效果:

语句:

SELECt create_date,
	CONCAT_Ws(
	',',
	CONCAt( '创建账号account:', account ),
	CONCAt( '密码password:', PASSWORD ),
	CONCAt( '账号状态:', CASE STATUS WHEN 1 THEN '正常' WHEN 0 THEN '禁用' ELSE NULL END ) 
	) AS line_info 
FROM `user` ORDER BY create_date
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/961567.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号