我被卡住了...我在MySQL中有一个字段(描述),字符串非常长。嵌入在该字符串中的是一个参考号,我需要使用视图提取到另一个字段。字符串看起来像这样。
LOREM IPSUM DOLOR SIT AMET CONSECTETUR ADIPISCING ELIT INTEGER NEC ODIO XX00000000X LIBERO SED CURSUS ANTE DAPIBUS DIAM SED NISI NULLA QUIS SEM at NIBH ELEMENTUM IMPERDIET
我需要的字符串是XX00000000X。它始终以两个字母开头,数字在中间,末尾有一个字母。
我有以下查询:
SELECT
Description,
SUBSTRING_INDEX (Description, ' ', (Description REGEXP '[[:upper:]]{1,2}[[:digit:]]+[[:upper:]]$') * -1 ) AS Reference
FROM db_test.tbl_regex;
问题是它只在“描述”字段的末尾收集参考数据。
答案 0 :(得分:2)
REGEXP_SUBSTR()
是在MariaDB 10.0.5和MySQL 8.0中引入的。
这就是您需要找到并提取XX00000000X。
REGEXP
(正如您使用的那样)只返回true / false。 SUBSTRING_INDEX()
需要字符串。
如果您无法升级到其中一个,那么您可以使用REGEXP
来识别具有XX00000000X的行,然后使用您的应用代码将其解压缩。