mysql 字符串匹配函数_mysql 自定义函数 实现字符串匹配

先来一个截图:

fSearch函数的第一个参数为单一字符串(即 没有特殊字符串隔开)

8dbd274987c0854ab85e3dc8def215e3.png

fSearch函数的第一个参数非单一字符串

539db3fdab320acea239c6ac82a9b728.png

多个字符串同样可以匹配。

函数代码:

DELIMITER $$

Create function fSearch(targetStr VARCHAR(100),findStr VARCHAR(100)) RETURNS INT

BEGIN

DECLARE strNum INT;

DECLARE cIndex INT DEFAULT 1;

DECLARE cStr VARCHAR(50);

DECLARE flag INT;

set strNum=1+(length(targetStr) - length(replace(targetStr,',','')));

WHILE cIndex<=strNum

DO

set cStr=reverse(substring_index(reverse(substring_index(targetStr,',',cIndex)),',',1));

set flag=LOCATE(cStr,findStr);

if (flag>0&&cStr!='') THEN

RETURN flag;

END IF;

set cIndex=cIndex+1;

END WHILE;

RETURN 0;

END $$

DELIMITER ;

使用场景:

加入博客系统中有个字段 存储文章所属的标签,假设标签为‘java,php,asp,web开发’ ,此时如果想通过该标签找到具有同类标签的文章 则可:

select *from blog b where fSearch('java,php,asp,web开发',b.tags)>0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值