mysql自定义字符_mysql判断一个字符串集在包含另一个字符串集的自定义方法

最近在做开发一块业务,碰到了一些棘手的问题,A表的字符串集数据要被B表里的C表包含A表数据并进行分页,大致意思就是 多对多的数据并且是包含才查询出来,让我着实在头大。

判断一个字符串集在包含另一个字符串集

比如一个A集合是这样的

1,4,8

B集合

1,2,3,8,4

那么需求就是判断A集合是否被B集合包含,直接贴上函数

CREATE DEFINER=`root`@`%` FUNCTION `find_str_in_set`(strA VARCHAR(500),strB VARCHAR(5000)) RETURNS tinyint(1)

BEGIN

DECLARE one_str VARCHAR(100);

DECLARE result BOOLEAN DEFAULT TRUE;

DECLARE Done INT DEFAULT 0;

DECLARE first_strs CURSOR FOR SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(strA,',',m.help_topic_id+1),',',-1) AS one_str

FROM mysql.`help_topic` m WHERE m.help_topic_id < (LENGTH(strA) - LENGTH(REPLACE(strA,',',''))+1);

DECLARE CONTINUE HANDLER FOR NOT FOUND SET Done =1;

IF(strA = '' OR strA IS NULL ) THEN RETURN TRUE; END IF;

IF(strB IS NULL ) THEN RETURN FALSE; END IF ;

IF(strA != '' AND strA IS NOT NULL AND strB != '' AND strB IS NOT NULL)THEN

OPEN first_strs;

flag_loop:LOOP

FETCH first_strs INTO one_str;

IF Done =1 THEN LEAVE flag_loop ; END IF ;

IF NOT FIND_IN_SET(one_str,strB) THEN SET result = FALSE;END IF;

END LOOP flag_loop;

CLOSE first_strs;

END IF;

RETURN result;

END

执行完上面代码接着就可以调用方法

SELECT find_str_in_set(‘1,4,8′,’1,2,3,8,4’) FROM DUAL;1

×用微信扫描并分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值