第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > mysql返回值concat函数拼接 if函数 CASE WHEN函数条件判断。

mysql返回值concat函数拼接 if函数 CASE WHEN函数条件判断。

时间:2019-04-28 10:58:33

相关推荐

mysql返回值concat函数拼接 if函数 CASE WHEN函数条件判断。

今天遇到一个sql的查询,需要把sql处理好返给前端展示,

既有条件判断又要拼接返回结果,这里记录一下。

sql:

SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for lgs_operation_task_rules-- ----------------------------DROP TABLE IF EXISTS `lgs_operation_task_rules`;CREATE TABLE `lgs_operation_task_rules` (`ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`site_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '站点id',`is_initialization` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否是初始化数据;是否是初始化数据0:否1:是',`task_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务名称',`task_rules` tinyint(3) NOT NULL DEFAULT 0 COMMENT '运维周期;0:每隔x天1:每月2:每隔x月3:每半年4:每年',`date_interval` tinyint(3) NULL DEFAULT NULL COMMENT '日期间隔;日期间隔:允许输入0和正整数',`reminder_date` tinyint(3) NULL DEFAULT NULL COMMENT '提前提醒天数;仅支持输入0与正整数。',`executive_role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '人员类别;0:硬件支持人员,1:软件支持人员,2:全部',`task_describe` varchar(900) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',`subtask` json NULL COMMENT '子任务',`is_disable` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否禁用0:否,1:是',`DEL_FLAG` tinyint(4) NOT NULL DEFAULT 0 COMMENT '删除状态;0:有效,1:无效',`CREATED_BY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',`CREATED_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`UPDATED_BY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',`UPDATED_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`ID`) USING BTREE,INDEX `site_id`(`site_id`) USING BTREE,INDEX `DEL_FLAG`(`DEL_FLAG`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 29 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '运维任务规则' ROW_FORMAT = Dynamic;-- ------------------------------ Records of lgs_operation_task_rules-- ----------------------------INSERT INTO `lgs_operation_task_rules` VALUES (1, NULL, 1, '定时重启123456', 7, 7, 13, '6', '系统默认,不可修改!放屁', 'true', 0, 0, NULL, '-08-19 00:00:00', NULL, '-08-19 00:00:00');INSERT INTO `lgs_operation_task_rules` VALUES (2, NULL, 1, '年度drp', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:10:56', NULL, '-08-19 15:41:29');INSERT INTO `lgs_operation_task_rules` VALUES (3, NULL, 1, '备份检查', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:12:05', NULL, '-08-19 15:41:35');INSERT INTO `lgs_operation_task_rules` VALUES (4, NULL, 1, '服务器巡检', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:12:30', NULL, '-08-19 15:41:42');INSERT INTO `lgs_operation_task_rules` VALUES (5, '105', 1, '定时重启', 0, 7, 3, '2', '系统默认,不可修改!', '{\"url\": \"\", \"name\": \"BeJson\", \"page\": 88, \"links\": [{\"url\": \"\", \"name\": \"Google\"}, {\"url\": \"\", \"name\": \"Baidu\"}, {\"url\": \"\", \"name\": \"SoSo\"}], \"address\": {\"city\": \"江苏苏州\", \"street\": \"科技园路.\", \"country\": \"中国\"}, \"isNonProfit\": true}', 0, 0, NULL, '-08-19 15:40:42', NULL, '-09-01 18:33:07');INSERT INTO `lgs_operation_task_rules` VALUES (6, '105', 1, '年度drp', 3, 30, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:40:42', NULL, '-09-01 18:33:29');INSERT INTO `lgs_operation_task_rules` VALUES (7, '105', 1, '备份检查', 1, 1, 3, '1', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:40:42', NULL, '-09-01 18:22:46');INSERT INTO `lgs_operation_task_rules` VALUES (8, '105', 1, '服务器巡检', 2, 30, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:40:42', NULL, '-09-01 18:33:25');INSERT INTO `lgs_operation_task_rules` VALUES (12, '2', 1, '定时重启', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:53:35', NULL, '-08-19 15:53:35');INSERT INTO `lgs_operation_task_rules` VALUES (13, '2', 1, '年度drp', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:53:35', NULL, '-08-19 15:53:35');INSERT INTO `lgs_operation_task_rules` VALUES (14, '2', 1, '备份检查', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:53:35', NULL, '-08-19 15:53:35');INSERT INTO `lgs_operation_task_rules` VALUES (15, '2', 1, '服务器巡检', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:53:35', NULL, '-08-19 15:53:35');INSERT INTO `lgs_operation_task_rules` VALUES (19, '4', 1, '定时重启', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:59:33', NULL, '-08-19 15:59:33');INSERT INTO `lgs_operation_task_rules` VALUES (20, '4', 1, '年度drp', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:59:33', NULL, '-08-19 15:59:33');INSERT INTO `lgs_operation_task_rules` VALUES (21, '4', 1, '备份检查', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:59:33', NULL, '-08-19 15:59:33');INSERT INTO `lgs_operation_task_rules` VALUES (22, '4', 1, '服务器巡检', 0, 7, 3, '0', '系统默认,不可修改!', NULL, 0, 0, NULL, '-08-19 15:59:33', NULL, '-08-19 15:59:33');SET FOREIGN_KEY_CHECKS = 1;

if函数

IF(expr, v1, v2)函数

如果expr成立,返回值为v1,否则返回v2

if(1<2,‘yes’,‘no’)

SELECTotr.task_name,otr.task_describe,IF( otr.is_disable = 0, '已启用', '已禁用' ) AS is_disable FROMlgs_operation_task_rules otr WHEREotr.site_id = 105

CASE WHEN 多个判断条件

CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END

该函数表示,如果expr值等于某个vn,则返回对应位置THEN后面的结果。如果与所有值都不相等,则返回ELSE后面的rn。

SELECTotr.task_name,otr.task_describe,CASEWHEN otr.executive_role = 0 THEN'硬件支持人员' WHEN otr.executive_role = 1 THEN'软件支持人员' ELSE '全部' END AS role FROMlgs_operation_task_rules otr WHEREotr.site_id = 105

MySQL的concat函数可以连接一个或者多个字符串

concat 等同于字符串连接符 ||,concat(字串1, 字串2, 字串3, …),将字串1、字串2、字串3,等字串连在一起。

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

SELECTotr.task_name,otr.task_describe,CONCAT( "提前", otr.reminder_date, "天" ) AS reminder_date FROMlgs_operation_task_rules otr WHEREotr.site_id = 105

结合使用

SELECTotr.task_name,otr.task_describe,CASEWHEN otr.task_rules = 0 THENCONCAT( "每隔", otr.date_interval, "天" ) WHEN otr.task_rules = 1 THENCONCAT( "每隔", otr.date_interval, "月" ) WHEN otr.task_rules = 3 THEN'每半年' ELSE '每年' END AS cycle,CONCAT( "提前", otr.reminder_date, "天" ) AS reminder_date,CASEWHEN otr.executive_role = 0 THEN'硬件支持人员' WHEN otr.executive_role = 1 THEN'软件支持人员' ELSE '全部' END AS role,IF( otr.is_disable = 0, '已启用', '已禁用' ) AS is_disable FROMlgs_operation_task_rules otr WHEREotr.site_id = 105

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。