从 MySQL 文本字段中提取连续数字
要有效地从 MySQL 文本字段中提取连续数字,有以下几种方法:
使用常规表达式:
MySQL 的内置正则表达式支持可用于检测文本字段中出现的两个连续数字。但是,此方法不会将数字提取为单独的字段。
带有 PCRE 的自定义函数:
要获得高级正则表达式功能,请考虑实现 LIB_MYSQLUDF_PREG。这个开源库提供了 PREG_CAPTURE、PREG_POSITION、PREG_REPLACE 和 PREG_RLIKE 等函数,可以从字符串中提取特定的匹配项。
自定义函数:
另一种方法是创建一个像 REGEXP_EXTRACT 这样的自定义函数来提取与所需正则表达式模式匹配的最长子字符串。此功能允许您指定开始和结束位置调整以捕获数字,而不包含其他字符。
其他条件:
如果您需要通过特定值,例如大于 20,您可以在获取数字作为 a 后在 MySQL 查询中应用附加条件
示例:
考虑以下自定义函数实现:
CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT) RETURNS TEXT DETERMINISTIC BEGIN ... ... END
然后,您可以在查询中使用此函数来提取两个原始文本字段中的连续数字并按值过滤它们:
SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits` FROM `source` WHERE `digits` > 20;
以上是如何从 MySQL 文本字段中提取连续数字?的详细内容。更多信息请关注PHP中文网其他相关文章!