使用SQL REGEXP忽略数字,仅获取String和'/'

罗珊·乌普雷蒂

我有一个带有类型列的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提取任意长度的字符串,在我的情况下,该字符串需要提取是不同的长度,例如,在情况下mg,它是2,在以下情况下mikrog,它的6另外,在某些情况下,我需要包含字符/

维克多·史翠比维

您可以删除数字以获得所需的信息:

REGEXP_REPLACE(column, ' *[0-9]+([.,][0-9]+)?(/[0-9]+([.,][0-9]+)?)? *', '')

请参阅regex演示

细节

  • * -0+个空格
  • [0-9]+ -1个以上的数字
  • ([.,][0-9]+)? -逗号或句点的可选序列,后跟1个数字
  • (/[0-9]+([.,][0-9]+)?)?-可选的a序列,/然后是1+个数字,然后可选地是.or或,and 1+个数字
  • * -0+个空格

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

RegExp搜索单词仅使用C#以数字和特殊字符开头

SQL REGEXP 搜索忽略“.”

SQL从列中仅获取金额(美元符号后的数字)和百分比(%符号前的数字)

仅使用小于0xFF的数字即可获取0x55555555。和<<

Dart使用RegExp从String获取跟踪元素

获取使用SQL加倍的数字计数?

在SQL中使用RegExp查找仅包含'x'的行

使用字母数字值和仅字母值的混合值对SQL中的字母数字列进行排序

使用regexp从SQL字符串中获取值

使用SQL获取数字列表之间的缺失数字

使用Python和SQL

SQL Select语句(REGEXP)在仅alpha字段中查找特殊字符和数字

仅使用 elementTree 获取和迭代的属性

使用 REGEXP_SUBSTR 和通配符的 SQL 连接

我需要忽略选择文本并仅使用数字值,我正在使用vue

如何使用python仅获取括号之间的数字

使用python regex仅获取9位数字

使用IF…THEN Sql查询并返回int和String

SQL LIKE仅使用全名

使用SQL查找丢失的数字

仅使用一个SQL查询获取页面结果

忽略几个小数,仅使用正则表达式检索字符串中的数字

使用regexp在tcl中查找以空格分隔的数字和字母数字值

使用 LIMIT 和 OFFSET 时使用 SQL 获取记录数

如何使用regexp_substr修剪和忽略破折号

使用match和regex从哈希中仅选择数字

使用jQuery在文本框中仅输入数字和“-”

使用jQuery仅允许数字和下划线(_)

仅使用数字,数字字母,字母数字和字母的组合对数组排序