在 MySQL 中提取两个连续数字
提供的 SQL 查询成功识别包含两个连续数字的文本字段。但是,要将这些数字提取为单独的字段,请考虑将附加功能合并到查询中。
选项 1:利用 LIB_MYSQLUDF_PREG
此开源库提供增强的常规功能MySQL 的表达能力。它提供了像 PREG_CAPTURE 这样的函数,可以从字符串中提取匹配项。安装并配置此库以访问这些函数。
选项 2:用于正则表达式提取的用户定义函数
创建像 REGEXP_EXTRACT 这样的自定义函数来提取最长的匹配子字符串基于提供的正则表达式。可以对该函数进行微调以处理特定要求,例如包含“^”和“$”分隔符。
可以修改 REGEXP_EXTRACT 函数以满足特定需求:
CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT) RETURNS TEXT DETERMINISTIC BEGIN ... (function code goes here) END
附加标准:数字大于20
将数字提取为字段后,您可以在查询中应用其他过滤:
SELECT `id`, `number_extracted` FROM ( SELECT `id`, `originaltext` FROM `source` WHERE `originaltext` REGEXP '[0-9][0-9]' ) AS subquery WHERE `number_extracted` > 20
此扩展查询将返回提取的数字超过 20 的行通过结合这些技术,您可以优化 MySQL 查询以根据需要提取和操作连续数字。
以上是如何从 MySQL 文本字段中提取并过滤大于 20 的连续数字?的详细内容。更多信息请关注PHP中文网其他相关文章!