我正在使用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();"
这可能与另一个问题类似,但我无法从中得到任何答案。
答案 0 :(得分:1)
执行此操作的一个好方法是构建一个与您的模式匹配的正则表达式,并使用regexp replace来删除不必要的部分。
不幸的是,MySQL并没有内置的regexp替换,但你可以使用用户定义的函数。
幸运的是,这已经开发出来了:https://github.com/hholzgra/mysql-udf-regexp