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
mysql集合查询 targetStr ='a,b,c ' findStr ='b,c'
最新推荐文章于 2023-09-24 18:40:54 发布
博客展示了一个自定义SQL函数FIND_SET_IN_SET的创建代码。该函数接收两个字符串参数,通过一系列操作,如计算字符串中逗号数量、循环截取子字符串等,利用FIND_IN_SET函数进行查找,若找到符合条件的子字符串则返回对应标识,未找到则返回0。

347

被折叠的 条评论
为什么被折叠?



