MySql常用函数(逻辑判断,字符串处理,日期函数)FIND_IN_SET、IF、ISNULL、IFNULL、NULLIF、SUBSTR、SUBSTRING_INDEX、CONCAT、LENGTH

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySql常用函数(逻辑判断,字符串处理,日期函数)FIND_IN_SET、IF、ISNULL、IFNULL、NULLIF、SUBSTR、SUBSTRING_INDEX、CONCAT、LENGTH

数据库版本:MySql 5.7


FIND_IN_SET


定义: 在逗号分隔的字符串列表中查找指定字符串的位置

FIND_IN_SET(str,strlist)

FIND_IN_SET()函数接受两个参数:


第一个参数str是要查找的字符串。

第二个参数strlist是要搜索的逗号分隔的字符串列表

FIND_IN_SET()函数根据参数的值返回一个整数或一个NULL值:


如果str或strlist为NULL,则函数返回NULL值。

如果str不在strlist中,或者strlist是空字符串,则返回零。

如果str在strlist中,则返回一个正整数。

1673354996106.jpg


IF函数


定义: IF函数根据条件的结果为true或false,true 返回第一个值,false返回第二个值。

`IF`(expr1,expr2,expr3)

1673355017631.jpg


ISNULL(expr)


定义: 判断exper是否为空,是则返回1,否则返回0

ISNULL(expr)

1673355032516.jpg


IFNULL(exper1,exper2)


定义: 判断exper1是否为空,是则用exper2代替

IFNULL(exper1,exper2)

1673355055728.jpg


NULLIF(exper1,exper2)


定义: 如果expr1= expr2 成立,那么返回值为NULL,否则返回值为 expr1。

NULLIF(exper1,exper2)

1673355084402.jpg

字符串函数


SUBSTR


SUBSTR (str, pos)

截取从pos位置开始到最后的所有str字符串,mysql中的start是从1开始的


SUBSTR (str, pos, len)


参数说明:


str为列名/字符串;

pos为起始位置;mysql中的起始位置pos是从1开始的;如果为正数,就表示从正数的位置往下截取字符串(起始坐标从1开始),反之如果起始位置pos为负数,那么 表示就从倒数第几个开始截取;

len为截取字符个数/长度。

1673355110308.jpg

1673355120777.jpg

SUBSTRING


和SUBSTR相同

1673355134734.jpg


SUBSTRING_INDEX


定义: 按关键字截取字符串

substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)

N可以为负数,表示倒数第N个索引字符后面的字符串。有负号的时候,可以将整个字符倒过来看,依旧是第N个字符前面的部分

1673355146782.jpg

CONCAT


定义: 将多个字符串合并为一个字符串

1673355164221.jpg


LENGTH


定义: 返回字符串的长度,一个汉字是算三个字符,一个数字或字母算一个字符。

1673355175822.jpg

CHAR_LENGTH


定义: 返回字符串的长度,不管汉字还是数字或者是字母都算是一个字符。

1673355186011.jpg


REPLACE


定义: 在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串


REPLACE(str,from_str,to_str)

1673355196889.jpg


日期函数


NOW


定义: 获取当前时间

1673355216948.jpg


date_format


定义: 获取当前时间并格式化

1673355227583.jpg

curdate


定义: 获取当前日期

1673355239797.jpg

curtime


定义: 获取当前时间

1673355252190.jpg


str_to_date


定义: 字符串转日期

1673355262733.jpg

time_format


定义:日期转字符串

1673355279950.jpg

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
存储 自然语言处理 关系型数据库
mysql 8.0 日期维度表生成(可运行)
mysql 8.0 日期维度表生成(可运行)
21 2
|
6天前
|
关系型数据库 MySQL 数据处理
企业级应用 mysql 日期函数变量,干货已整理
本文详细介绍了如何在MySQL8.0中使用DATE_FORMAT函数进行日期格式的转换,包括当日、昨日及不同时间段的数据获取,并提供了实际的ETL应用场景和注意事项,有助于提升数据处理的灵活性和一致性。
19 0
|
23天前
|
存储 关系型数据库 MySQL
MySQL中利用FIND_IN_SET进行包含查询的技巧
`FIND_IN_SET`提供了一种简便的方法来执行包含查询,尤其是当数据以逗号分隔的字符串形式存储时。虽然这个方法的性能可能不如使用专门的关系表,但在某些场景下,它提供了快速简便的解决方案。开发者应该根据具体的应用场景和性能要求,权衡其使用。
22 0
|
2月前
|
SQL 关系型数据库 MySQL
在 MySQL 中使用 IS NULL
【8月更文挑战第12天】
614 0
在 MySQL 中使用 IS NULL
|
2月前
|
SQL 关系型数据库 MySQL
在 MySQL 中使用 Concat
【8月更文挑战第11天】
113 0
在 MySQL 中使用 Concat
|
3月前
|
存储 JSON 关系型数据库
mysql中find_in_set()函数用法详解及增强函数
总结而言,`FIND_IN_SET()`是MySQL中处理由逗号分隔的字符串列表的一种便捷方法,尤其适用于列表相对较短且不经常更改的场景。然而,对于更为复杂的需要高性能和可扩展性的数据库设计,它可能不是最优选择,应考虑使用更加正规化的数据库结构。
384 2
mysql中find_in_set()函数用法详解及增强函数
|
3月前
|
关系型数据库 MySQL
mysql使用 CONCAT(字段,字段) 函数拼接
mysql使用 CONCAT(字段,字段) 函数拼接
|
4月前
|
JSON 关系型数据库 MySQL
MySQL常用函数解读:从基础到进阶的全方位指南
MySQL常用函数解读:从基础到进阶的全方位指南
|
4月前
|
关系型数据库 MySQL 数据库
MySQL数据库——函数-字符串函数、数值函数、日期函数、流程函数
MySQL数据库——函数-字符串函数、数值函数、日期函数、流程函数
40 2
|
3月前
|
存储 语音技术 Python
语音识别,函数综合案例,黑马ATM,/t/t一个对不齐,用两个/t,数据容器入门,数据容器可以分为列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
语音识别,函数综合案例,黑马ATM,/t/t一个对不齐,用两个/t,数据容器入门,数据容器可以分为列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)