-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 に答える