选择查询中的MYSQL REGEX

时间:2019-07-16 20:57:21

标签: mysql regex syntax mysql-8.0

需要Regex解决方案才能从列中仅选择字符串模式。

数据如下:

Column1
Data Type = String 

Data = 
"130 - 66||109,118 - 3||102 - 18||109,118 - 2||109,116,149 - 14||141 - 8||130 - 31||102 - 12"

预期结果

66, 3, 18, 2, 14, 8, 31, 12

尝试过REgex-"\-(...*?)\W",但无效。

2 个答案:

答案 0 :(得分:0)

MySQL REGEXP返回一个布尔值,而不是字符串。

摘录自MySQL参考手册:

  

如果字符串1与模式expr指定的正则表达式匹配,则返回pat,否则返回0。如果exprpatNULL,则返回值为NULL

也许我们要使用MySQL REGEXP_REPLACE函数?

参考:

https://dev.mysql.com/doc/refman/8.0/en/regexp.html#operator_regexp

https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-replace

答案 1 :(得分:0)

您可以尝试

SELECT REPLACE(REGEXP_REPLACE('130 - 66||109,118 - 3||102 - 18||109,118 - 2||109,116,149 - 14||141 - 8||130 - 31||102 - 12',
                                     '(([,0-9]+) - )', ''),'||',',');

和结果

66,3,18,2,14,8,31,12

Referance