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

2019-09-29 15:09:31 +08:00
 openbsd
需要处理一个附件记录表,个人想法是增加一个新的字段,将原字段记录处理后写入,最后改程序引用实现

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

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

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

请问该如何编写 UPDATE 语句
4512 次点击
所在节点    MySQL
2 条回复
airfling
2019-09-29 15:29:50 +08:00
用正则不如用分割符,先按照 /分割,再按照-分割,然后重新拼接
NjcyNzMzNDQ3
2019-09-29 16:28:13 +08:00
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

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

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

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

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

© 2021 V2EX