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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
30天前
|
关系型数据库 MySQL Unix
MySQL中日期和时间函数的使用指南
使用这些函数可以有效地处理和分析日期和时间数据,对于数据库管理、报表生成和数据分析非常关键。在实际应用中,根据具体需求选择适当的函数进行数据处理,可以极大地提高数据处理的效率和准确性。
148 17
|
3月前
|
存储 关系型数据库 MySQL
MySQL数据库中进行日期比较的多种方法介绍。
以上方法提供了灵活多样地处理和对比MySQL数据库中存储地不同格式地日子信息方式。根据实际需求选择适当方式能够有效执行所需操作并保证性能优化。
393 10
|
4月前
|
存储 SQL 人工智能
MySQL 数据类型详解:字符串、数字、日期
在 MySQL 数据库设计中,选择合适的数据类型对存储效率和查询性能至关重要。本文详细介绍了字符串、数字和日期三大类数据类型及其子类型,帮助开发者根据业务需求做出更优选择。内容涵盖 CHAR 与 VARCHAR 的区别、TEXT 和 BLOB 的使用场景、整数与浮点类型的适用范围,以及日期时间类型的特性。通过最佳实践建议,提升数据库性能并避免常见问题。
266 4
|
6月前
|
关系型数据库 MySQL 定位技术
MySQL与Clickhouse数据库:探讨日期和时间的加法运算。
这一次的冒险就到这儿,期待你的再次加入,我们一起在数据库的世界中找寻下一个宝藏。
288 9
|
8月前
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL的FIND_IN_SET如何在YashanDB改写
本文来自YashanDB官网,探讨了MySQL中使用`FIND_IN_SET`函数在YashanDB中不兼容的问题及解决方法。由于YashanDB的`tinyint`类型无法参与条件运算,而MySQL的Boolean类型是`tinyint`的同义词,导致直接迁移时出现错误。文章通过分析原因,提出改写方案:将`where find_in_set(`替换为`where 0 < find_in_set(`,从而实现兼容性调整,方便用户快速迁移和改写SQL语句。
|
11月前
|
关系型数据库 MySQL
mysql中单独获取已知日期的年月日其中之一
通过上述内容,您应该能够更好地在MySQL中处理和提取日期和时间信息,以满足各种业务需求。
361 5
|
关系型数据库 MySQL
Mysql 中日期比较大小的方法有哪些?
在 MySQL 中,可以通过多种方法比较日期的大小,包括使用比较运算符、NOW() 函数、DATEDIFF 函数和 DATE 函数。这些方法可以帮助你筛选出特定日期范围内的记录,确保日期格式一致以避免错误。
370 1
|
存储 自然语言处理 关系型数据库
mysql 8.0 日期维度表生成(可运行)
mysql 8.0 日期维度表生成(可运行)
357 2
|
SQL NoSQL 关系型数据库
|
存储 JSON 关系型数据库
mysql中find_in_set()函数用法详解及增强函数
总结而言,`FIND_IN_SET()`是MySQL中处理由逗号分隔的字符串列表的一种便捷方法,尤其适用于列表相对较短且不经常更改的场景。然而,对于更为复杂的需要高性能和可扩展性的数据库设计,它可能不是最优选择,应考虑使用更加正规化的数据库结构。
1931 2
mysql中find_in_set()函数用法详解及增强函数

推荐镜像

更多