首页 > 数据库 > mysql教程 > 如何从 MySQL 文本字段中提取连续数字并应用附加条件?

如何从 MySQL 文本字段中提取连续数字并应用附加条件?

Barbara Streisand
发布: 2024-12-18 13:15:19
原创
626 人浏览过

How to Extract Consecutive Digits from a MySQL Text Field and Apply Additional Criteria?

从 MySQL 文本字段中提取连续数字

在 MySQL 中,以下查询可以检测包含 2 位数字的文本字段:

SELECT `id`, `originaltext` FROM `source` WHERE `originaltext` regexp '[0-9][0-9]'
登录后复制

但是,要将这些数字作为单独的字段进行操作,需要进一步处理。这里有两个可能的解决方案:

使用 LIB_MYSQLUDF_PREG

LIB_MYSQLUDF_PREG 是一个增强正则表达式功能的 MySQL 库。它引入了像 PREG_CAPTURE 这样的函数,可以从字符串中提取匹配项。

要使用此库,您必须将其安装到 MySQL 服务器中。安装后,您可以使用以下查询来提取连续数字:

SELECT `id`, PREG_CAPTURE('[0-9][0-9]', `originaltext`) AS `digits` FROM `source`
登录后复制

使用自定义 MySQL 函数

或者,您可以定义一个自定义 MySQL 函数执行提取。例如,以下函数将提取第一个最长的匹配数字序列:

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  DECLARE s INT DEFAULT 1;
  ...
  -- Implementation to extract the matching digits
  ...
END
登录后复制

要使用此函数,请按如下方式调用它:

SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits` FROM `source`
登录后复制

附加条件 (数字 > 20)

添加数字应大于的条件20、只需将此条件添加到任一查询的 WHERE 子句中:

WHERE `digits` > 20
登录后复制

以上是如何从 MySQL 文本字段中提取连续数字并应用附加条件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板