使用mySQL查询查找和替换特定文本和随机数

时间:2015-06-23 22:27:33

标签: mysql

我正在使用mySQL Workbench来编辑列中的数据。数据采用

的形式

[随机整数1] [常量字符串] [数据我想保持完整] [随机整数2]

我想开发一个查询来删除开头和结尾的[Random integers]以及[constant string]。 我可以使用如下脚本删除[常量字符串]:

update [table_name] set [column_name] = replace([column_name], '[constant string]','');

但是我仍然留下: [随机整数1] [数据我想保持完整] [随机整数2]。

任何人都可以帮我写一个脚本在mySQL Workbench中使用,它将适用于整个表吗?顺便提一句,我有一个以上,有些非常大,都有相同的模式问题。 该整数的例子是:“16”,“123”,“225”等。它总是1-3位数。

重申一下,我想要的东西会剥离[随机整数1],[常量字符串]和[随机整数2] 从[随机整数1] [常量字符串] [数据我想保持完整] [随机整数2]

之前和之后的示例是:

rows
"85-STRING-Undo 250"
"140-STRING-js: E.undo(); 194" 

Desired result
"Undo"
"js: E.undo();"

这可能与另一个问题类似,但我无法从中得到任何答案。

1 个答案:

答案 0 :(得分:1)

执行此操作的一个好方法是构建一个与您的模式匹配的正则表达式,并使用regexp replace来删除不必要的部分。

不幸的是,MySQL并没有内置的regexp替换,但你可以使用用户定义的函数。

幸运的是,这已经开发出来了:https://github.com/hholzgra/mysql-udf-regexp