56,914
社区成员




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;