MYSQL 高阶函数

本文深入探讨了MySQL中的高级函数,包括如何使用CONCAT和CONCAT_WS进行字符串拼接,GROUP_CONCAT实现分组后的字符串组合,DATE_ADD进行日期的增减操作,以及SUBSTRING_INDEX进行字符串截取。此外,还介绍了FIND_IN_SET和LOCATE用于检查和定位子字符串的功能,以及它们在实际应用中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MYSQL 高阶函数

行内拼接

1.拼接字符串
concat(F1,…,Fn);
F1,…Fn 为拼接字段,分隔符为逗号,将各字段隔开

2.指定分隔符拼接
concat_ws(sep,F1,…Fn);
F1,…Fn 同为拼接字段,sep为指定分隔符
如:concat_ws(’:’,‘aa’,‘bb’,‘cc’);

分组收集函数

  1. 将该列所有行收集为一个集合
    Collect_list(FIELD)

  2. 将该列所有行收集为一个去重后的集合
    collect_set(FIELD)

分组组内拼接字符串

分组后把聚合的数据都拼接成一个长字符串
group_concat(FIELD)

在field后可以排序按照使聚合数据按照一定的顺序来拼接
ASC:顺序 DESC:逆序
group_concat(FIELD[order by field ASC/DESC])

日期增减函数

date_add(date,interval num unit);
date 为需要被运算的原始日期
num 为指定的数量 (正数为加,负数为减)
unit 为指定的单位(天、月、年)
如:
date_add(date,interval 1 day);
date_add(date,interval -1 month);
date_add(date,interval 1 year);

截取字符串

substring_index(string,delimiter,count);
string 为需要被截取的源字符串
delimiter 为分隔符
count 为数量
当count为正数时,指前几个分割符。该函数就是在string 中截取前几个分隔符之前的所有内容
当count为负数时,指后几个分隔符.该函数就是在string 中截取后几个分隔符之前的所有内容
如:
substring_index(‘V1,V2,V3,…’,’,’,3 ) => V1,V2,V3

当需要提取第N个分隔符前的元素时怎么办呢:
substring_index(substring_index(string,delimiter,n),delimiter,-1)

集合包含函数

find_in_set(FIELD/CONST,‘V1,V2,…’);
判断 field字段是否在后面的集合中,若field在第n个逗号前则返回n

定位子字符串在父字符串中的位置

1.从startPos(inclusive)开始在string中找到substr首次出现的位置
如果 substrnull || stringnull return null
如果 substr not in string return 0
否则 返回1~char_length(string)
locate(substr,string[,startPos])

2.返回substr在string中第一次出现的首字符的位置
instr(string,substr)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值