Mysql(函数) 字符串截取、拆分, 逗号分割字符串当做 in 的条件
作者:mmseoamin日期:2023-12-20

目录

 引言: 

数据函数的总结(一)

1. mysql截取拆分

2. 逗号分割的字符串 作为in条件

-> 2.1 正常的效果应该是 

---> 2.1.1 错误: 

3. 字符串合并(多条数据合并 用'、'分割)


 引言: 

数据库函数的总结(一)

1. 字符串截取、拆分

可以用于将用户输入的字符串按照特定的规则进行截取,比如获取电话号码中的区号、手机号码中的前三位等等

2. 逗号分割字符串当做 in 的条件

逗号分割的字符串可以作为分组数据的标识符,用于对数据进行分组和聚合操作

3. 字符串合并(多条数据合并 用'、'分割)

将不同的用户id转换成用户名 然后用 、分隔显示在一个字段上, 例如不同的操作人

1. mysql截取拆分

函数方法如下: 

SUBSTRING(str FROM pos FOR len)、

SUBSTRING(str FROM pos)、

SUBSTRING(str, pos)、

SUBSTRING(str, pos, len)

 没错 跟java的字符串截取方式一样, 字符串, 开始, 结尾

2. 逗号分割的字符串 作为in条件

 示例:  如图所示

Mysql(函数) 字符串截取、拆分, 逗号分割字符串当做 in 的条件,第1张

-> 2.1 正常的效果应该是 

select * from 表1 where id in(239,238)

---> 2.1.1 错误: 

select * from 表1 where id in(select inspector from 表2 where id = 1)

结果只显示一条

---> 2.1.2 正确: 

函数: FIND_IN_SET(str,strlist)

Mysql(函数) 字符串截取、拆分, 逗号分割字符串当做 in 的条件,第2张

 select * from 表1 where FIND_IN_SET(id, (select inspector from 表2 where id = 1));

3. 字符串合并(多条数据合并 用'、'分割)

 GROUP_CONCAT()组合函数

GROUP_CONCAT(DISTINCT user.username SEPARATOR '、' )

Mysql(函数) 字符串截取、拆分, 逗号分割字符串当做 in 的条件,第3张

-> 3.1 假设用户的字段存 22,23

---> 3.1.1 组合结果: (活动注册3、郭岩)

-> 3.2 sql语句 模板

	(
	SELECT
	GROUP_CONCAT( username SEPARATOR '、' ) FROM user 
	
	WHERE
	
	FIND_IN_SET(id,  (	SELECT user_ids	FROM	teacher 	WHERE	id = acqi.id ))
		
	)as studentName,

总结: mysql函数解决了什么问题

  1. 数据处理:MySQL函数可以对数据进行处理和转换,比如对字符串进行分割、连接、替换、格式化等操作,对日期进行格式化、计算等操作,对数值进行计算、取整、保留小数等操作等。

  2. 数据验证:MySQL函数可以对数据进行验证和检查,比如对字符串进行长度、正则表达式等校验,对日期进行有效性检查,对数值进行范围、类型等校验等。

  3. 数据查询:MySQL函数可以用于查询和过滤数据,比如使用聚合函数计算数据的总和、平均值、最大值、最小值等,使用逻辑函数进行条件查询、排序、分页等操作。

  4. 数据转换:MySQL函数可以将不同数据类型进行转换,比如将字符串类型转换成数值类型或日期类型、将日期类型转换成字符串类型等。

列举几个常用函数

  1. COUNT:计算指定表或表达式的行数。

  2. SUM:计算指定表或表达式的和。

  3. AVG:计算指定表或表达式的平均值。

  4. MAX:计算指定表或表达式的最大值。

  5. MIN:计算指定表或表达式的最小值。

  6. CONCAT:将多个字符串连接成一个字符串。

  7. SUBSTR:截取指定字符串的一部分字符子串。

  8. DATE_FORMAT:将日期格式化为指定的字符串格式。

  9. NOW:返回当前日期和时间。

  10. IF:根据指定条件,选择不同的返回结果。