-1

当列值是字符串的一部分时,我需要在 MySQL 中查找。真的,我正在尝试输入像“/folder1/folder2/”这样的文件夹路径并更改其所有父文件夹的值。

这就是我所拥有的不起作用:

UPDATE content_folders SET size = size+47654765 WHERE path% LIKE "/folder1/folder2/"

因此,例如使用“/folder1/folder2/”,我需要对列路径为“/”或“/folder1”的任何行进行操作。

我也试过这个无济于事:

mysqli_query($mysqli,"UPDATE content_folders SET size = size+".filesize("content/$id")." WHERE concat(path,'%') LIKE '".$path."'")  
4

2 回答 2

0

使用 LIKE 运算符时,您在查询的字符串部分使用 % 通配符,而不是作为字段名称的一部分。

所以

UPDATE content_folders SET size = size+47654765 WHERE path% LIKE "/folder1/folder2/"

应该

UPDATE content_folders SET size = size+47654765 WHERE path LIKE "/folder1/folder2/%"

编辑:

我误读了原来的问题。

您可以使用以下内容选择父目录:

UPDATE content_folders SET size = size+47654765 WHERE INSTR("/folder1/folder2/", path) = 1 AND path != "/folder1/folder2/"; 
于 2013-04-24T02:44:33.717 回答
0

我知道了。

UPDATE content_folders SET size = size+4674567 WHERE instr("/folder1/folder2/",path)
于 2013-04-24T02:56:05.877 回答