更改字符串中的一个单词时更新多个字段?

时间:2014-01-09 19:16:06

标签: mysql sql database

通常我会发布代码,但这次我不知道从哪里开始,或者我可能只是将一个简单的问题复杂化。

问题

所以我有一个表将URL路径存储为字符串

(Example: 192.168.x.x\Location\Location2\SPECIALNAME\Folder\Folder2)

这允许我们在客户端构建文件夹/文件存储库,以便我们的用户添加文件和访问文件。

我的问题是如何更新与匹配

相关的所有字段

"\SPECIALNAME\"并将'SPECIALNAME'替换为其他值(如果此人更改了主文件夹的名称,则应使用新名称更新链接到此文件夹的所有子文件夹和内容)

尝试更清楚地说明问题:

如果我的位置存储在我的表格中:

URL\ **SPECIALNAME** \FOLDER\SUBFOLDER

   URL\ **SPECIALNAME** \FOLDER\SUBFOLDER\SUBSUBFOLDER1

   URL\ **SPECIALNAME** \FOLDER\SUBFOLDER2

   URL\ **SPECIALNAME** \FOLDER\SUBFOLDER2\SUBSUBFOLDER1\SUBSUBFOLDER2

   URL\ **SPECIALNAME** \FOLDER\OTHERFOLDER

我想专门更新SPECIALNAME所在的字段,用户可能将其更改为新名称。

此更新语句可能会在单个名称更改时进行80多个更新批量,以便透视将使用新名称更新多少URL路径

2 个答案:

答案 0 :(得分:4)

UPDATE table SET url = REPLACE(url, '\\SPECIALNAME\\', '\\MORESPECIALNAME\\') WHERE url LIKE '%\\SPECIALNAME\\%';

答案 1 :(得分:1)

从查询开始:

SELECT * 
FROM tablename
WHERE path LIKE "%SPECIALNAME%"

然后你可以遍历结果和

$newPath = STR_replace("SPECIALNAME", "NEWNAME", $query['path']);