mysql find_in_set多个_MySQL find_in_set与多个搜索字符串

b98c00d01f8c3c728630e769af0e4c01.png

BIG阳

您也可以使用此自定义功能CREATE FUNCTION SPLIT_STR(  x VARCHAR(255),  delim VARCHAR(12),  pos INT)RETURNS VARCHAR(255)RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),       delim, ''); DELIMITER $$    CREATE FUNCTION `FIND_SET_EQUALS`(`s1` VARCHAR(200), `s2`  VARCHAR(200))     RETURNS TINYINT(1)    LANGUAGE SQL    BEGIN          DECLARE a INT Default 0 ;            DECLARE isEquals TINYINT(1) Default 0 ;          DECLARE str VARCHAR(255);          IF s1 IS NOT NULL AND s2 IS NOT NULL THEN             simple_loop: LOOP                 SET a=a+1;                 SET str= SPLIT_STR(s2,",",a);                 IF str='' THEN                    LEAVE simple_loop;                 END IF;                 #Do  check is in set                 IF FIND_IN_SET(str, s1)=0 THEN                    SET isEquals=0;                     LEAVE simple_loop;                 END IF;                 SET isEquals=1;            END LOOP simple_loop;          END IF;        RETURN isEquals;    END;    $$    DELIMITER ;SELECT FIND_SET_EQUALS('a,c,b', 'a,b,c')- 1SELECT FIND_SET_EQUALS('a,c', 'a,b,c')- 0SELECT FIND_SET_EQUALS(null, 'a,b,c')- 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值