V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
Mac
V2EX  ›  MySQL

MYSQL 不支持正则替换?

  •  1
     
  •   Mac · 2014-09-28 18:50:42 +08:00 · 5633 次点击
    这是一个创建于 3710 天前的主题,其中的信息可能已经有所发展或是发生改变。
    字段A中有
    B
    B1
    B2
    这样的数据,我希望能统一列成去掉数字的B,怎么破?
    8 条回复    2014-09-30 23:38:33 +08:00
    ichou
        1
    ichou  
       2014-09-28 18:59:27 +08:00
    为什么要用 sql 来实现... 做迁移么?
    Mac
        2
    Mac  
    OP
       2014-09-28 19:05:03 +08:00
    @ichou 无法控制数据的录入,只能控制输出了。。。
    fising
        3
    fising  
       2014-09-28 19:32:58 +08:00
    你这个replace就好了
    Mac
        4
    Mac  
    OP
       2014-09-28 19:42:05 +08:00
    @fising 怎么写?replace 貌似只支持替换单一字符
    sandtears
        5
    sandtears  
       2014-09-28 19:52:37 +08:00
    写个应用来做呗,山不过来我就过去。
    Mac
        6
    Mac  
    OP
       2014-09-28 19:59:42 +08:00
    @sandtears 唉,只能用LIKE来替换了,就怕编码乱七八糟的搞死人
    ETiV
        7
    ETiV  
       2014-09-28 22:12:34 +08:00
    如果你存储引擎用的是 MyISAM, 可以 dump 成类csv格式, 从vim里用正则替换掉, 再导入回去.

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

    因为 LOAD DATA INFILE 语句在 MyISAM 下是 InnoDB 的 20 倍.
    gogogen
        8
    gogogen  
       2014-09-30 23:38:33 +08:00
    https://github.com/mysqludf/lib_mysqludf_preg
    这个是最好的mysql正则解决方案,推荐一试。preg是很强大的
    不过也有一些小坑,比如会往err里面写大量无用日志。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5800 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:35 · PVG 14:35 · LAX 22:35 · JFK 01:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.