我解释了一个获得解决方案的例子。
我有一个包含id, name, image
字段的用户表。
样本记录应为,
id - 1
name - TestUser
image - temp/testuser.jpg (sometimes no sub-directory 'temp'. ie, image - testuser.jpg)
用户注册后,我将图像移动到新的子目录。
即从temp/testuser.jpg(testuser.jpg)
移动到1/testuser.jpg
所以我需要使用新网址进行更新。
即,我需要在这里进行两次操作。将子目录temp
替换为1
,如果没有子目录前置' 1 /'到现有的图片网址。
如何在一个查询中管理这些操作?请帮助我:)
答案 0 :(得分:0)
我建议将目录与文件名分开。你正在添加另一个字段,但它更容易。
更新后,您只需要更新它所在的目录。
否则你可以在整个路径上执行substr()
并将所有内容替换为最后一个斜杠。
答案 1 :(得分:0)
我建议使用以下查询
update users set
image = concat('new_dir/', substring(image from locate('/', image) + 1))
where id = 1