更新将一列中的一部分字符串替换为另一列中的一部分字符串

时间:2019-10-02 14:26:45

标签: mysql sql-update

请帮助我进行此查询。 我正在尝试将另一列中的一部分字符串替换为另一列中的一部分字符串 桌子应该看起来像

image_url                                 |          video_url
----------------------------------------------------------------------------------------------
https://siteurl/folder/folder/folder/     |          https://siteurl/folder/folder/folder/
folder/folder/folder/xyz.jpg              |           folder/folder/folder/folder/xyz.mp4 

我正在尝试使用image url中的那个更新video_url的文件夹路径。文件夹的鬃毛在不同的行上完全不同 我已经尝试过下面的方法,但这会引发错误

UPDATE `tbl` 
set video_url = REPLACE(video_url,
                        SELECT SUBSTRING_INDEX(video_url, "/", 10), 
                        SELECT SUBSTRING_INDEX(image_url, "/", 9)) 
where image_url like '%ch1%'

我任何人都可以提供解决方案,这将是很大的帮助

1 个答案:

答案 0 :(得分:0)

不确定是不是您想要的,请尝试以下操作:

UPDATE Table
SET video_url = 
CONCAT(
   LEFT(image_url, LENGTH(image_url) - LOCATE('/', REVERSE(image_url))), 
   '/', 
   SUBSTRING_INDEX(video_url, '/', -1)
);

这会将video_url列上的文件夹路径替换为image_url列中的文件夹路径。