当列值是字符串的一部分时,我需要在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."'")
答案 0 :(得分: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/";
答案 1 :(得分:0)
我明白了。
UPDATE content_folders SET size = size+4674567 WHERE instr("/folder1/folder2/",path)