gpt4 book ai didi

Mysql 计算每个字段的正则表达式匹配数

转载 作者:可可西里 更新时间:2023-11-01 07:08:33 25 4
gpt4 key购买 nike

我试图让 mysql 返回正则表达式匹配的次数。

类似于:

select 'aabbccaa' regexp 'a'

应该返回 4(a 的 4 个匹配项),而不仅仅是 true(或 1)。

有什么办法吗???

谢谢!!

最佳答案

你可以创建一个函数:

delimiter ||
DROP FUNCTION IF EXISTS substrCount||
CREATE FUNCTION substrCount(s VARCHAR(255), ss VARCHAR(255)) RETURNS TINYINT(3) UNSIGNED LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA
BEGIN
DECLARE count TINYINT(3) UNSIGNED;
DECLARE offset TINYINT(3) UNSIGNED;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = NULL;

SET count = 0;
SET offset = 1;

REPEAT
IF NOT ISNULL(s) AND offset > 0 THEN
SET offset = LOCATE(ss, s, offset);
IF offset > 0 THEN
SET count = count + 1;
SET offset = offset + 1;
END IF;
END IF;
UNTIL ISNULL(s) OR offset = 0 END REPEAT;

RETURN count;
END;

||
delimiter ;

然后你可以这样调用

SELECT substrCount('aabbccaa', 'a') `count`;

关于Mysql 计算每个字段的正则表达式匹配数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3144214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com