比如有以下数据
(1)“张三,李四”
(2)“张三,李四,王五”
(3) “赵六,赵三”
怎样判断(2)中存在(1)中的数据
怎样判断(3)中不存在(1)中的数据
增加函数
DELIMITER $$
CREATE FUNCTION `IS_INCLUDE` (setA longtext,setB longtext) RETURNS int(1)
BEGIN
DECLARE idx INT DEFAULT 0 ;
DECLARE len INT DEFAULT 0;
DECLARE llen INT DEFAULT 0;
DECLARE clen INT DEFAULT 0;
DECLARE tmpStr longtext;
DECLARE curt longtext;
SET len = LENGTH(setB);
WHILE idx < len DO
SET idx = idx + 1;
SET tmpStr = SUBSTRING_INDEX(setB,",",idx);
SET clen = LENGTH(tmpStr);
IF idx = 1 THEN SET curt = tmpStr;
ELSE SET curt = SUBSTRING(setB,llen+2,clen-llen-1);
END IF;
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 $$;
调用
返回1,则代表存在
返回0,则代表不存在