首页
学习
活动
专区
圈层
工具
发布

Mysql 中 Case 的使用介绍

工作中经常需要写各种 sql 来统计线上的各种业务数据,使用 CASE 能让你的统计事半功倍,如果能用好它,不仅SQL 能解决的问题更广泛,写法也会漂亮地多,接下来让我们看看 CASE 的各种妙用吧,在开始之前我们简单学习一下...CASE 表达式的写法 CASE 表达式的两种写法 CASE 表示式有简单表达式和搜索表达式两种,如下 -- 简单 CASE 表达式 CASE sex WHEN '1' THEN '男'...CASE 的用法详解 知道了 CASE 的用法,接下来我们来举几个例子来看下 CASE 的几种妙用,首先让我们准备两张表(字段设计还有优化的空间,只是为了方便演示 CASE 的使用),用户表(customer...为 3 的经过上面两步之后最终并没有变成 2(先变成 2 再变成 3),那我们看看如何用 CASE 来实现我们的需求 UPDATE customer SET vip_level CASE WHEN...给我们带来了很大的便利,不仅逻辑上更为紧凑,而且相比于多条 sql 的执行,使用 「CASE WHEN」一行就能解决问题,方便了很多

2.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL中的case when中对于NULL值判断的小坑

    今天在开发程序中,从MySQL中提取数据的时候,使用到了case when的语法用来做判断,在使用过程中在判断NULL值的时候遇到个小问题; 具体的现象测试如下: 表结构如下: CREATE TABLE...理想的结果第3条记录为3 PROD ,但是却为空,说明这个判断null条件有问题; Mysql中case when语法: 语法1: CASE case_value WHEN when_value THEN...那么针对上面的查询需求,我们就可以调整成语法2的语法格式: mysql>SELECT -> id, -> CASE -> WHEN name...语句无法满足需求,下面我们再来看下面一个SQL语句,同样也存在问题,无法满足我的查询需求,大家在使用中要注意; mysql>SELECT -> id, -> CASE...主要是将第一种语法与第二种语法混用导致的,case 后面的case_value 的值有两种:真实值或者为null,而 when 后面的条件也有两个值:true或者false,所以出现查询结果和实际不匹配的情况

    4.3K30

    mysql,case when语法

    SELECT                 case                   -------------如果     when sex='1' then '男' -------...    when sex='2' then '女' -------------sex='2',则返回值'女'       else 0                 -------------其他的返回...其他’     end                    -------------结束 from   sys_user            --------整体理解: 在sys_user表中如果...sex='1',则返回值'男'如果sex='2',则返回值'女' 否则返回'其他’ ---用法一: SELECT              CASE                 WHEN STATE...            ELSE '其他' END               FROM  SYS_SCHEDULER ---用法二:  SELECT STATE             CASE

    1.6K30

    MySQL case几例

    一、修改innodb_log_file_size报错 5.5版本要求小于4G 5.5版本库 修改innodb_log_file_size 需要mv 走原来的iblogfile 二、1418错误 MySQL...、函数、触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个, 例如: CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc...END;; 第二种是信任子程序的创建者,禁止创建、修改子程序时对SUPER权限的要求,设置log_bin_trust_routine_creators全局系统变量为1。...选项,参数设置为1 3.在MySQL配置文件my.ini或my.cnf中的[mysqld]段上加log-bin-trust-function-creators=1 三、问题:Specified key...file or directory 解决方案: yum remove libnuma.so.1 yum -y install numactl.x86_64 六、统计信息不准 问题:datacenter中的某个查询

    1.3K30
    领券