mysql集合查询 targetStr ='a,b,c ' findStr ='b,c'

博客展示了一个自定义SQL函数FIND_SET_IN_SET的创建代码。该函数接收两个字符串参数,通过一系列操作,如计算字符串中逗号数量、循环截取子字符串等,利用FIND_IN_SET函数进行查找,若找到符合条件的子字符串则返回对应标识,未找到则返回0。

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

CREATE DEFINER=`root`@`%` FUNCTION `FIND_SET_IN_SET`(targetStr varchar(2000),findStr varchar(2000)) RETURNS int(11)
    READS SQL DATA
BEGIN
DECLARE strNum int;
DECLARE lenIndex int DEFAULT 1;
DECLARE cStr VARCHAR(50);
DECLARE flag INT;
SET strNum=1+(length(targetStr) - length(replace(targetStr,',','')));
WHILE lenIndex<=strNum
DO
set cStr=reverse(substring_index(reverse(substring_index(targetStr,',',lenIndex)),',',1));
set flag=FIND_IN_SET(cStr,findStr);
if (flag>0&&cStr!='') THEN
RETURN flag;
END IF;
set lenIndex=lenIndex+1;
END WHILE;
RETURN 0;
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值