mysql检查列值是否在字符串中

时间:2013-04-24 02:39:16

标签: mysql

当列值是字符串的一部分时,我需要在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."'")  

2 个答案:

答案 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)