MYSQL 中判断2个逗号分割的字符串是否有交集
来源:互联网 发布:如何购买正版windows. 编辑:程序博客网 时间:2024/05/29 08:58
使用存储过程:
DROP FUNCTION IF EXISTS `INTE_ARRAY`;delimiter //-- 集合交集检查函数-- @param varchar(255) setA A 集合 如 "1,3,5,9"-- @param varchar(255) setB B 集合 如 "8,2,3,7"-- @return int(1) B 集合内单元在 A集合 内存在则返回 1 否则返回 0CREATE FUNCTION `INTE_ARRAY` (setA varchar(255),setB varchar(255)) RETURNS int(1)BEGIN DECLARE idx INT DEFAULT 0 ; -- B 集合单元索引 DECLARE len INT DEFAULT 0;-- B 集合表达式长度 DECLARE llen INT DEFAULT 0;-- 最后检查位置 DECLARE clen INT DEFAULT 0;-- 当前检查位置 DECLARE tmpStr varchar(255);-- 临时检查数据集 DECLARE curt varchar(255);-- B 当前检查的单元 SET len = LENGTH(setB); WHILE idx < len DO SET idx = idx + 1; SET tmpStr = SUBSTRING_INDEX(setB,",",idx); SET clen = LENGTH(tmpStr);-- 获取当前 setB 中的单元 IF idx = 1 THEN SET curt = tmpStr; ELSE SET curt = SUBSTRING(setB,llen+2,clen-llen-1); END IF;-- 检查是否存在于 setA 中 IF FIND_IN_SET(curt,setA) > 0 THEN RETURN 1; END IF;-- 当前检查终点与上次检查终点相同则跳出 IF clen <= llen THEN RETURN 0; END IF; SET llen = clen; END WHILE; RETURN 0;END;//delimiter ;select INTE_ARRAY("1,3,5,9","8,2,3,7") as is_inte_array;--select INTE_ARRAY("1,3,5,9","2,8,6,10") as is_inte_array;--select INTE_ARRAY("10,3,5,9","2,8,6,10") as is_inte_array;--select INTE_ARRAY("1,30,5,9","2,8,6,10") as is_inte_array;--select INTE_ARRAY("1,30,5,9","2,30,6,10") as is_inte_array;
0 0
- MYSQL 中判断2个逗号分割的字符串是否有交集
- js中判断2个div是否有交集
- 判断2个时间段是否有交集
- 数据库字段是逗号分隔字符串,传入值是字符串list,判断二者是否有交集
- vc 如何判断2个矩形是否有交集
- vc 如何判断2个矩形是否有交集
- 比较2个时间段是否有交集的方法
- 验证目标字符串是否在以逗号分割的字符串中
- mysql判断表里面一个逗号分隔的字符串是否包含单个字符串
- sql判断以逗号分隔的字符串中是否包含某个字符串
- 在ORalce 中,怎么判断两个时间段之间是否有交集, 编写的一个函数.
- 【技术支持】判断两个时间段是否有交集的伪代码
- 判断两字符串中是否有共同的子字符串
- 判断以逗号分隔的字符串中是否包含某个数
- 判断字符串中是否有子字符串
- 判断2个由小写字母组成的字符串是否有共同的元素
- mysql 查询两个时间段是否有交集的情况
- 判断两个时间段是否有交集
- Flume环境部署和配置详解及案例大全
- 上传漏洞浅见
- Suricata配置文件说明1
- 5-Binary String Matching
- js 单机时间放在ready中
- MYSQL 中判断2个逗号分割的字符串是否有交集
- CREATE TABLESPACE——PERMANENT
- SpringMVC上传下载文件
- Swift基础(十二)UI基础--AutoLayout
- C语言积累
- subversion to old报错
- mysql主从复制
- iOS数据库操作安全整理
- 嵌入式C语言实战开发详解(四)