预备和替换一个查询mysql

时间:2016-01-12 13:28:59

标签: php mysql laravel

我解释了一个获得解决方案的例子。 我有一个包含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 /'到现有的图片网址。

如何在一个查询中管理这些操作?请帮助我:)

2 个答案:

答案 0 :(得分:0)

我建议将目录与文件名分开。你正在添加另一个字段,但它更容易。

更新后,您只需要更新它所在的目录。

否则你可以在整个路径上执行substr()并将所有内容替换为最后一个斜杠。

答案 1 :(得分:0)

我建议使用以下查询

update users set
image = concat('new_dir/', substring(image from locate('/', image) + 1))
where id = 1