功能描述: 判断数据显示代表的含义(类似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



