在所有行的最后一个斜杠后添加特定单词

gopyfrb3  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(231)

我有一个mysql服务器,我试着在所有行的最后一个斜杠后面放一个特定的词


**table**

http://link.com/prop/datadelivery/sys/187500461.mp4
http://link.com/prop/datadelivery/sys/187500462.mp4
http://link.com/prop/datadelivery/sys/187500463.mp4
http://link.com/prop/datadelivery/sys/187500464.mp4

我需要在最后一个斜杠后面加上“/p1/”。结果应该是这样的:


**table**

http://link.com/prop/datadelivery/sys/p1/187500461.mp4
http://link.com/prop/datadelivery/sys/p1/187500462.mp4
http://link.com/prop/datadelivery/sys/p1/187500463.mp4
http://link.com/prop/datadelivery/sys/p1/187500464.mp4

我看了一下命令“替换”,但我相信它可能不是我在这种情况下的理想解决方案。你能帮助我吗?谢谢

vatpfxk5

vatpfxk51#

你可以试试这个。添加 % 之后 %/sys/ 否则,您将无法匹配任何数据。因为这些数据在 /sys .

update T 
set name = replace(name, '/sys/', '/sys/p1/') 
where name like '%/sys/%';

D小提琴

deikduxw

deikduxw2#

你可以用 locate() 查找子字符串在字符串中的位置。唯一的问题是,它返回子字符串的第一个位置。你得继续努力 reverse() d弦,得到最后一个。与 substring() 然后可以在最后一个字符串之前和之后剪切子字符串 '/' 以及 contat() 包括你的附录。当然,你需要在最后重新扭转它。

UPDATE elbat
       SET nmuloc = reverse(concat(substring(reverse(nmuloc), 1, locate('/', reverse(nmuloc))),
                            reverse('p1'),
                            substring(reverse(nmuloc), locate('/', reverse(nmuloc)))));

db<>小提琴

相关问题