sql搜索字段内逗号分隔包含指定值函数需求:A表中column1字段存储字符串,字符串为多个元素根据逗号拼接⽽成,需搜索出包含某元素的数据
建⽴存储过程:
CREATE DEFINER=`roots`@`%` FUNCTION `NewProc`(str1 text,str2 text) RETURNS text CHARSET utf8mb4
BEGIN
#传⼊两个逗号分割的字符串,判断第⼆个字符串是否包含第⼀个字符串split之后的单个
DECLARE CURRENTINDEX INT;#当前下标
DECLARE CURRENTSTR text;
DECLARE result int;
set result =0;
set CURRENTINDEX =0;
set CURRENTSTR ='';
IF str1 IS NOT NULL AND str1 !=''THEN
SET CURRENTINDEX = LOCATE(',',str1);
WHILE CURRENTINDEX >0 DO字段字符串去重复
SET CURRENTSTR =substring(str1,1,CURRENTINDEX-1);
if FIND_IN_SET(CURRENTSTR,str2) THEN
set result =1;
end if;
SET str1 =substring(str1,CURRENTINDEX+1);
SET CURRENTINDEX = LOCATE(',',str1);
END WHILE;
#只传⼀个和最后⽆逗号的情况
IF LENGTH(str1) >0THEN
if FIND_IN_SET(str1,str2) THEN
set result =1;
end if;
END IF;
END IF;
RETURN result;
END
使⽤:select * from table_A where NewProc('param', column1);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。