mysql 自定义函数 实现字符串匹配
2013-09-05 22:34
519 查看
先来一个截图:
fSearch函数的第一个参数为单一字符串(即 没有特殊字符串隔开)
fSearch函数的第一个参数非单一字符串
多个字符串同样可以匹配。
函数代码:
使用场景:
加入博客系统中有个字段 存储文章所属的标签,假设标签为‘java,php,asp,web开发’ ,此时如果想通过该标签找到具有同类标签的文章 则可:
select *from blog b where fSearch('java,php,asp,web开发',b.tags)>0
fSearch函数的第一个参数为单一字符串(即 没有特殊字符串隔开)
fSearch函数的第一个参数非单一字符串
多个字符串同样可以匹配。
函数代码:
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
相关文章推荐
- 一个小函数,实现通配符*和?的字符串匹配。
- Mysql中实现提取字符串中的数字的自定义函数分享
- 函数:MySQL中字符串匹配函数LOCATE和POSITION使用方法
- MySQL中字符串匹配函数LOCATE和POSITION使用方法
- Mysql中用order by实现自定义排序函数field(value,str1,str2,str3,str4)和locate(substr,str)
- Mysql中实现提取字符串中的数字的自定义函数分享
- 函数:MySQL中字符串匹配函数LOCATE和POSITION使用方法
- MySQL中自定义函数实现id自增长
- mysql 中自定义实现split功能的函数
- mysql自定义函数实现统计一个字符串在另一个长字符串中出现的次数
- linux下mysql扩展,自定义函数实现(…
- MySQL自定义函数来删除特殊字符或非ASCII字符
- Mysql LIKE中特殊字符转义【附php实现函数】
- Mysql LIKE中特殊字符转义【附php实现函数】
- mysql REGEXP 正则的实现两个字符串组的匹配(实现数据库字符串匹配查询)
- [置顶] 【mysql 字符串函数】MySQL中字符串匹配函数LOCATE和POSITION使用方法
- Mysql LIKE中特殊字符转义【附php实现函数】
- mysql自定义函数实现递归查询
- Mysql LIKE中特殊字符转义【附php实现函数】
- mysql利用自定义变量实现分析函数