本人现在需要实现一个功能就是俩个字符串的比较及取出相同的值
如:
变量1 变量2 想要的结果
12 1234 12
135 12345 135
23 45 null
如:
变量1 变量2 想要的结果
12 1234 12
135 12345 135
23 45 null
解决方案
100
DELIMITER $$
CREATE FUNCTION f(v1 varchar(100), v2 varchar(100))
RETURNS varchar(100)
BEGIN
DECLARE _r varchar(100) DEFAULT "";
DECLARE _i int DEFAULT 1;
DECLARE _a varchar(100);
DECLARE _b varchar(100);
IF CHAR_LENGTH(v1) > CHAR_LENGTH(v2) THEN
SELECT v1, v2 INTO _b, _a;
ELSE
SELECT v1, v2 INTO _a, _b;
END IF;
WHILE _i <= CHAR_LENGTH(_a) DO
IF INSTR(_b, MID(_a, _i, 1)) THEN SET _r=CONCAT(_r,MID(_a, _i, 1)); END IF;
SET _i = _i + 1;
END WHILE;
RETURN _r;
END$$
DELIMITER ;
SELECT f("12345", "35"), f("257", "123457");
DROP FUNCTION f;