我是一个 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
我看了一下命令"替换"但我相信在这种情况下,对我来说可能不是理想的解决方案。 你能帮助我吗?感谢
答案 0 :(得分:2)
你可以试试这个。在%
之后添加%/sys/
,否则您将无法匹配任何数据。因为这些数据包含/sys
之后的数据。
update T
set name = replace(name, '/sys/', '/sys/p1/')
where name like '%/sys/%';
答案 1 :(得分:1)
您可以使用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)))));