目录
mysql的case when怎么用
首页 数据库 mysql教程 mysql的case when怎么用

mysql的case when怎么用

Aug 01, 2022 pm 05:32 PM
mysql

在mysql中,“case when”用于计算条件列表并返回多个可能结果表达式之一;“case when”具有两种语法格式:1、简单函数“CASE[col_name]WHEN[value1]THEN[result1]…ELSE[default]END”;2、搜索函数“CASE WHEN[expr]THEN[result1]…ELSE[default]END”。

mysql的case when怎么用

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql的case when怎么用

case when语句,用于计算条件列表并返回多个可能结果表达式之一。

CASE 具有两种格式:简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。 CASE 搜索函数计算一组布尔表达式以确定结果。 两种格式都支持可选的 ELSE 参数。

在做数据分析的时候,需要从数据库中查找数据并进行分析展示,准确的数据查询结果有利于后期简洁有效的分析。在此期间用到了 mysql中的case when,记录一下case when的用法。

CASE语句为多分支语句结构,该语句首先从WHEN后的VALUE中查找与CASE后的VALUE相等的值,如果查找到,则执行该分支的内容,否则执行ELSE后面的内容。

MySql的case when 语法有两种:

1、简单函数

CASE[col_name]WHEN[value1]THEN[result1]…ELSE[default]END

2、搜索函数

CASE WHEN[expr]THEN[result1]…ELSE[default]END

简单函数

CASE input_expression
WHEN when_expression THEN
    result_expression [...n ] [
ELSE
    else_result_expression
END

枚举Input_expression所有可能的值。

Input_expression 和每个 when_expression 的数据类型必须相同,或者是隐性转换。

搜索函数

CASE WHEN [Boolean_expression] THEN [result1]…ELSE [default] END

判断Boolean_expression表达式,如果满足,返回then后边的结果

以人员表为例

16.png

第一种用法,when后边必须接case列的值,不能是表达式

select case sex when sex='1' then '男' when sex='2' then '女' else '其他' end as '性别' from people;
select case sex when sex='2' then '女' when sex='1' then '男' else '其他' end as '性别' from people;

查询结果

17.png

原因:因为when后边不是case列的所有可能值,而是表达式,但是为什么会出现’男’这样的结果,需要思考,后边研究明白后,再更新

正确写法

select case sex when '1' then '男' when '2' then '女' else '其他' end as '性别' from people;

查询结果

18.png

推荐学习:mysql视频教程

以上是mysql的case when怎么用的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Laravel 教程
1605
29
PHP教程
1510
276
优化MySQL用于财务数据存储 优化MySQL用于财务数据存储 Jul 27, 2025 am 02:06 AM

MySQL用于金融系统需优化四个关键点:1.金融数据必须使用DECIMAL类型确保精度,时间字段使用DATETIME避免时区问题;2.索引设计要合理,避免频繁更新字段建索引,组合索引按查询顺序排列并定期清理无用索引;3.使用事务确保一致性,控制事务粒度,避免长事务和非核心操作嵌入其中,并根据业务选择合适隔离级别;4.对历史数据按时间分区、归档冷数据并使用压缩表,提升查询效率并优化存储。

优化MySQL用于实时数据提要 优化MySQL用于实时数据提要 Jul 26, 2025 am 05:41 AM

TooptimizeMySQLforreal-timedatafeeds,firstchoosetheInnoDBstorageenginefortransactionsandrow-levellocking,useMEMORYorROCKSDBfortemporarydata,andpartitiontime-seriesdatabytime.Second,indexstrategicallybyonlyapplyingindexestoWHERE,JOIN,orORDERBYcolumns,

用对象级特权确保MySQL 用对象级特权确保MySQL Jul 29, 2025 am 01:34 AM

TosecureMySQLeffectively,useobject-levelprivilegestolimituseraccessbasedontheirspecificneeds.Beginbyunderstandingthatobject-levelprivilegesapplytodatabases,tables,orcolumns,offeringfinercontrolthanglobalprivileges.Next,applytheprincipleofleastprivile

管理大型MySQL表的最佳实践 管理大型MySQL表的最佳实践 Aug 05, 2025 am 03:55 AM

处理大表时,MySQL性能和可维护性面临挑战,需从结构设计、索引优化、分表策略等方面入手。1.合理设计主键和索引:推荐使用自增整数作为主键以减少页分裂;使用覆盖索引提升查询效率;定期分析慢查询日志并删除无效索引。2.分区表的合理使用:按时间范围等策略分区,提升查询和维护效率,但需注意分区裁剪问题。3.考虑读写分离和分库分表:读写分离缓解主库压力,分库分表适用于数据量极大场景,建议使用中间件并评估事务和跨库查询问题。前期规划和持续优化是关键。

实施MySQL数据库复制过滤器 实施MySQL数据库复制过滤器 Jul 28, 2025 am 02:36 AM

MySQL复制过滤可在主库或从库端配置,主库端通过binlog-do-db或binlog-ignore-db控制binlog生成,适用于减少日志体积;从库端通过replicate-do-db、replicate-ignore-db、replicate-do-table、replicate-ignore-table及通配符规则replicate-wild-do-table和replicate-wild-ignore-table控制数据应用,更灵活且利于数据恢复;配置时需注意规则顺序、跨库语句行为、

优化内容管理系统(CMS)的MySQL 优化内容管理系统(CMS)的MySQL Jul 28, 2025 am 03:19 AM

ToimproveMySQLperformanceforCMSplatformslikeWordPress,firstimplementacachinglayerusingpluginslikeRedisorMemcached,enableMySQLquerycaching(ifapplicable),andusepagecachingpluginstoservestaticfiles.Second,optimizeMySQLconfigurationbyincreasinginnodb_buf

MySQL中的截断,删除和掉落有什么区别? MySQL中的截断,删除和掉落有什么区别? Aug 05, 2025 am 09:39 AM

DELETEremovesspecificorallrows,keepstablestructure,allowsrollbackandtriggers,anddoesnotresetauto-increment;2.TRUNCATEquicklyremovesallrows,resetsauto-increment,cannotberolledbackinmostcases,doesnotfiretriggers,andkeepstablestructure;3.DROPremovesthee

如何故障排除常见的mySQL连接错误? 如何故障排除常见的mySQL连接错误? Aug 08, 2025 am 06:44 AM

检查MySQL服务是否运行,使用sudosystemctlstatusmysql确认并启动;2.确保bind-address设置为0.0.0.0以允许远程连接,并重启服务;3.验证3306端口是否开放,通过netstat检查并配置防火墙规则允许该端口;4.对于“Accessdenied”错误,需核对用户名、密码和主机名,登录MySQL后查询mysql.user表确认权限,必要时创建或更新用户并授权,如使用'your_user'@'%';5.若因caching_sha2_password导致认证失

See all articles