5

even列内のすべての (2、4、6 など) 行文字列を更新できるようにする必要がありimageます...名前は拡張子で終わり、その.png前にテキストを挿入したい.jpg

だからMyImage.png~~~MyImage-Small.png

odd次に、すべての行(1、3、5など)で同じことができる必要があります

4

2 に答える 2

11

テーブルに数値の主キー column があると仮定すると、id偶数行に対してこれを行うことができます。

update mytable set picture = replace(picture, '.png', '-Small.png') where id % 2 = 0;

同様に、述語をid % 2 = 1奇数行に変更するだけです

于 2013-09-18T23:21:33.293 に答える
2

テーブルに連続シーケンスである数値キーがない場合でも、次の更新を使用して、奇数行と偶数行の選択的な更新を実現できます。

UPDATE mytable o
INNER JOIN
    (SELECT id, @row :=@row +1,mod(@row,2) AS num
        FROM mytable, (SELECT @row := 0) r)AS t
    ON o.id = t.id -- any indexed field which is unique for the table
  SET o.image =
        CASE num 
            WHEN 0 THEN 'even_row'
            WHEN 1 THEN 'odd_row'
        END;

このクエリが行っているのは、テーブルのシーケンスを生成し、それを元のテーブルに結合することだけなので、奇数行と偶数行を別々に更新します。

于 2013-09-19T10:16:13.570 に答える