mysql case if 条件查询及性能分析

本文详细介绍了MySQL中CASE和IF语句的使用,包括如何在查询中显示性别文字、根据年龄分段、分组统计以及与其他查询方式的性能对比。实验展示了CASE在多条件判断和性能优化中的优势,并探讨了IF语句的基本用法和NULLIF函数的应用。
摘要由CSDN通过智能技术生成

概述:
sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情况下分别执行不同的操作。

首先,让我们看一下CASE的语法。在一般的SELECT中,其语法格式如下:

 CASE   <单值表达式>
        WHEN <表达式值> THEN <SQL语句或者返回值>
        WHEN <表达式值> THEN <SQL语句或者返回值>
        ...
        WHEN <表达式值> THEN <SQL语句或者返回值>
        ELSE <SQL语句或者返回值>
 END

★ 第一部分

# 创建一个用户表

CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL auto_increment, 
`sex` tinyint(1) default 1 COMMENT '性别:0女;1男;2保密',
`age` int(3) default 1 COMMENT '年龄',
`province` char(254) default NULL COMMENT '所在省份',
PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


# 向表中插入测试数据

INSERT INTO user(sex,age,province) VALUES
('1','22','北京'),
('0','25','广东'),
('0','56','天津'),
('1','14','北京'),
('0','36','广东'),
('1','68','湖南'),
('1','45','北京'),
('1','17','河北'),
('2','33','天津'),
('1','27','湖南'),
('1','29','北京'),
('2','70','广东'),
('0','24','北京')

数据表如下图:

------------------------------------------------------------------------------------------

实验1.1:将用户性别用文字直观显示

1.简单Case函数写法(注意sex的位置)

select *,(CASE sex WHEN '1' THEN '男' WHEN '0' THEN '女' ELSE '保密' END) as sex_text
from user

2.Case搜索函数写法(注意sex的位置【推荐】)

select *,(CASE WHEN sex='1' THEN '男' WHEN sex='0' THEN '女' ELSE '保密' END) as sex_text
from user

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值