MYSQL 不支持正则替换?

2014-09-28 18:50:42 +08:00
 Mac
字段A中有
B
B1
B2
这样的数据,我希望能统一列成去掉数字的B,怎么破?
5533 次点击
所在节点    MySQL
8 条回复
ichou
2014-09-28 18:59:27 +08:00
为什么要用 sql 来实现... 做迁移么?
Mac
2014-09-28 19:05:03 +08:00
@ichou 无法控制数据的录入,只能控制输出了。。。
fising
2014-09-28 19:32:58 +08:00
你这个replace就好了
Mac
2014-09-28 19:42:05 +08:00
@fising 怎么写?replace 貌似只支持替换单一字符
sandtears
2014-09-28 19:52:37 +08:00
写个应用来做呗,山不过来我就过去。
Mac
2014-09-28 19:59:42 +08:00
@sandtears 唉,只能用LIKE来替换了,就怕编码乱七八糟的搞死人
ETiV
2014-09-28 22:12:34 +08:00
如果你存储引擎用的是 MyISAM, 可以 dump 成类csv格式, 从vim里用正则替换掉, 再导入回去.

InnoDB也可以, 但为什么是MyISAM呢?

因为 LOAD DATA INFILE 语句在 MyISAM 下是 InnoDB 的 20 倍.
gogogen
2014-09-30 23:38:33 +08:00
https://github.com/mysqludf/lib_mysqludf_preg
这个是最好的mysql正则解决方案,推荐一试。preg是很强大的
不过也有一些小坑,比如会往err里面写大量无用日志。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/136203

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX