本人现在需要实现一个功能就是俩个字符串的比较及取出相同的值
如:
变量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;