【发布时间】:2019-12-06 14:22:16
【问题描述】:
我有一个 MySQL 表,其中有一列类型为 varchar(255) 的列,其中包含以下格式的数据:
400 mg
50/12,5 mg/ml
20 mikrog
500 mg/400 IU
60 mikrog/15 mikrog
我需要忽略数字,只提取字符串,在某些情况下,包括/,因此上面的数据如下所示:
mg
mg/ml
mikrog
mg/IU
mikrog/mikrog
我尝试像这样使用REGEXP:
SELECT DISTINCT REGEXP_SUBSTR(column, '[a-z]') FROM db.table;
但是,这只是给了我一堆字母,像这样
m
I
U
a
g
k
有没有什么方法可以使用REGEXP提取任意长度的String,就我而言,需要提取的String长度不等,例如mg,就是2,在mikrog 的情况是 6。另外,在某些情况下,我需要包含字符 /。
【问题讨论】:
-
好像你的数据库版本是8+,不是吗?
-
@BarbarosÖzhan 是的
-
在您的应用程序中解析您的数据,不是在 SQL 中。