关键词搜索

源码搜索 ×
×

MySQL数据库语句优化之善用case语句

发布2021-12-06浏览722次

详情内容

一、case语句

CASE 表达式是SQL 里非常重要而且使用起来非常便利的技术,我们应该学会用它来描述条件分支,可以在执行过程中可以在某种程度上减少查询时间。

二、case语句分类

1、简单CASE 表达式(simple case expression)

-- 简单CASE 表达式
CASE 变量
WHEN '值1' THEN 执行语句1
WHEN '值2' THEN 执行语句2
ELSE '其他' END;

    2、搜索CASE 表达式(searched case expression)

    -- 搜索CASE 表达式
    CASE WHEN 变量 = '值1' THEN 执行语句1
    WHEN 变量 = '值2' THEN 执行语句2
    ELSE '其他' END;
    
    • 1
    • 2
    • 3
    • 4

    三、例子

    1、利用case可以统计多条数据
    假如有一张表(person),里面包含有人员信息包括人员所在城市(字段为city),假设人员都分布在南京、上海、北京和杭州这四个城市。我们需要统计每个城市都有多少人。
    1、用select 语句实现

    --南京人数
    select city,sum(name) from person group by city;
    
    • 1
    • 2

    2、用case语句实现

    select city,
    sum(case city=‘nanjing’ then name else 0 end) as city_nanjing,
    sum(case city=‘shanghai’ then name else 0 end) as city_shanghai,
    sum(case city=‘beijing’ then name else 0 end) as city_beijing,
    sum(case city=‘hangzhou’ then name else 0 end) as city_hangzhou
    from person;
    
      6

    性能分析:下面的方式虽然撰写的语句虽然长,当数据量到达一定程度上,下面语句的执行效率明显优于上面语句。上面语句进行分组后再进行统计,下面的语句在执行的过程中就进行统计。

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载