mysql自定義函數(shù)實現(xiàn)字符串匹配
先來一個截圖:
fSearch函數(shù)的第一個參數(shù)為單一字符串(即 沒有特殊字符串隔開)
fSearch函數(shù)的第一個參數(shù)非單一字符串
多個字符串同樣可以匹配。
函數(shù)代碼:
01DELIMITER $$02Create function fSearch(targetStr VARCHAR(100),findStr VARCHAR(100)) RETURNS INT03BEGIN04DECLARE strNum INT;05DECLARE cIndex INT DEFAULT 1;06DECLARE cStr VARCHAR(50);07DECLARE flag INT;08set strNum=1+(length(targetStr) - length(replace(targetStr,',','')));09WHILE cIndex<=strNum10DO11set cStr=reverse(substring_index(reverse(substring_index(targetStr,',',cIndex)),',',1));12set flag=LOCATE(cStr,findStr);13if (flag>0&&cStr!='') THEN14RETURN flag;15END IF;16set cIndex=cIndex+1;17END WHILE;18RETURN 0;19END $$20DELIMITER ;
使用場景:
加入博客系統(tǒng)中有個字段 存儲文章所屬的標(biāo)簽,假設(shè)標(biāo)簽為‘java,php,asp,web開發(fā)’ ,此時如果想通過該標(biāo)簽找到具有同類標(biāo)簽的文章 則可:
select *from blog b where fSearch('java,php,asp,web開發(fā)',b.tags)>0
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com