如何在MySQL Workbench中将REGEXP_SUBSTR或REGEXP_EXTRACT与托管在Google Cloud SQL上的数据库一起使用?

问题描述 投票:1回答:1

我正在使用一个在Google Cloud SQL上托管的MYSQL数据库。我正在通过MySQL Workbench 8.0 CE进行工作。

我想获得模式element_name中表p0999_pakbonprojects列的子字符串。元素名称类似于“ LVLS 45 Beam 1”和“ SPANO 18 Stud 1”。我想获取:“ LVLS 45”和“ SPANO 18”

在我的本地计算机上托管的数据库的旧副本中,以下代码可以正常工作:

SELECT REGEXP_SUBSTR(pp.element_name, "[A-Z]+[:space:][0-9]+")
FROM projects.p0999_pakbon pp

这是因为REGEXP_SUBSTR是在MySQL中获取子字符串的标准函数。但是,此代码在Google Cloud SQL托管的数据库中不起作用。在此页面https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#regexp_extract上,我似乎读到Google Cloud SQL改为使用REGEXP__EXTRACT。但是当我尝试以下操作时:

SELECT REGEXP_EXTRACT(pp.element_name, "[A-Z]+[:space:][0-9]+")
FROM projects.p0999_pakbon pp

它不起作用。当我将正则表达式更改为非常简单的正则表达式(如“ A”)时,它也将不起作用。

我遇到这些错误:FUNCTION项目。REGEXP_SUBSTR不存在FUNCTION项目。REGEXP_EXTRACT不存在

当我以错误的格式键入参数时,出现以下错误消息:对存储功能'REGEXP_EXTRACT'的调用中的参数不正确>]

有人知道如何解决我的问题吗?也许有解决方法?

我正在研究一个在Google Cloud SQL上托管的MYSQL数据库。我正在通过MySQL Workbench 8.0 CE进行工作。我想在表中的p0999_pakbon表中获得element_name列的子字符串,...

mysql sql regex mysql-workbench google-cloud-sql
1个回答
1
投票

假设您只需要前两个单词,则可以在此处使用SUBSTRING_INDEX,它应适用于大多数版本的MySQL:

© www.soinside.com 2019 - 2024. All rights reserved.