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
openbsd
V2EX  ›  MySQL

请教大神 MySQL UPDATE 怎么编写包含正则表达式的语句

  •  
  •   openbsd · 2019-09-29 15:09:31 +08:00 · 4695 次点击
    这是一个创建于 1911 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需要处理一个附件记录表,个人想法是增加一个新的字段,将原字段记录处理后写入,最后改程序引用实现

    字段原内容为 /abc/def/ghi/123456789-XXXXXXXX.zzzz

    前段一定是一串数字
    - 可能是其它字符 类似 _ 空格等
    XXXXXXXX 可能是 中 /英 文或者其他各种乱七八糟的字符
    zzzz 文件扩展名 可能是 3 位 /4 位英文字母

    希望改成 /abc/def/ghi/123456789.xxx
    保留路径不变 /abc/def/ghi/
    文件名 截取前面所有数字部分+文件扩展名

    请问该如何编写 UPDATE 语句
    2 条回复    2019-09-29 16:28:13 +08:00
    airfling
        1
    airfling  
       2019-09-29 15:29:50 +08:00   ❤️ 1
    用正则不如用分割符,先按照 /分割,再按照-分割,然后重新拼接
    NjcyNzMzNDQ3
        2
    NjcyNzMzNDQ3  
       2019-09-29 16:28:13 +08:00   ❤️ 1
    input : SELECT REGEXP_REPLACE('a b c', 'b', 'X');
    output: a X c

    参考: https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-replace
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2664 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:18 · PVG 15:18 · LAX 23:18 · JFK 02:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.