大版 MySql的技术问题

MySql 码拜 5年前 (2016-05-04) 411次浏览
本人现在需要实现一个功能就是俩个字符串的比较及取出相同的值
如:
变量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;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明大版 MySql的技术问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)