2016-04-27 12 views
0

私のテーブルを変更する必要があります。誰も私はこの列を埋めることができます知っていますか?配列の列を整数intで埋める

UPDATE db.table 
CROSS JOIN (SELECT @myid := 0) AS parameter 
SET new_column = @myid := (@myid +1); 

答えて

1

持つすべての行を入力します。 は、私はこれを試してみましたこの回答はすべて私のために働いています。そして私は別のものをしました

1

試し番号2 =(

0

set @i = 1; 
Update db.table set new_column=(@i := @i+1) where id>0; 

しかし、これはちょうどあなたが簡単に行うことができ

Update your_table 
join 
(
    select id, @i := @i+1 as rank 
    from your_table 
    cross join (select @i := 0) ia 
    where id > 0 
    order by id 
) tmp on tmp.id = your_table.id 
set your_table.new_column = tmp.rank 
+0

注:intの既定値は0です。 @aではありません。次のように使用することもできます:set new_column = v_counter - デフォルトを1に設定すると –

関連する問題