SQL替换特定“ /”之后的所有文本

时间:2018-12-27 03:55:45

标签: mysql

当前,我正在尝试过滤数据库,以删除所有链接并仅保留文件名。

这里是一个例子:

表1


id   dub

1    http://svr1.mystream.com/data/files/media/p1/file1.mp4 

2    http://svr1.mystream.com/data/files/media/p0/file1.mp4

3    http://svr1.mystream.com/data/files/media/file48.mp4

...


此外,我还有另一个具有相同内容的表,但是它们之间用逗号分隔。

表2


id   leg

1    http://svr1.mystream.com/data/files/media/p1/file1.mp4, http://svr1.mystream.com/data/files/media/p1/file2.mp4, http://svr1.mystream.com/data/files/media/p1/file3.mp4 

2    http://svr1.mystream.com/data/files/media/file48.mp4, http://svr1.mystream.com/data/files/media/p1/file49.mp4, http://svr1.mystream.com/data/files/media/p1/file50.mp4

3    http://svr1.mystream.com/data/files/media/p0/file13.mp4, http://svr1.mystream.com/data/files/media/p1/file14.mp4, http://svr1.mystream.com/data/files/media/p1/file15.mp4 

...

table2的输出应该是file1.mp4,file2.mp4,file3.mp4,...


我必须删除所有内容,并仅在最后一个“ /”字符后保留文件名。

我应该怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

Mysql 8具有regexp替换:

https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-replace

对于较低版本的mysql使用 最后一个'/'的substringindex和子字符串(用于第一个表)

https://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_substring-index

第二张表必须规范化,并且看起来像第一张表。没有rexexp替换,我不知道该怎么做。