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

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

Barbara Streisand
Barbara Streisand原创
2024-12-18 13:15:19623浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn