2010-12-14 8 views
37

テーブルのフィールドの1つのフィールドがすべての行に対して0に設定されています。しかし私は、更新クエリのステップ1で増分値に更新したいです。mysqlで値を段階的に更新する

どのように私はmysqlでそれを行うことができますか?

+0

明確にする:既存のデータセットを変更して番号を増やす方法を尋ねていますか? –

+0

いいえ、私はこのフィールドを最近追加するので、デフォルトでは0に設定されています。feature.iの自動インクリメントであってはなりません。有効なdata.hopeを書きたいだけです。 –

答えて

92

はこれを試してみてください。

3

元の列の代わりにAUTO_INCREMENT列を使用して新しい表を作成し、古い表から新しい表にすべてのデータを挿入して、新しい表の名前を変更して古い表を削除することもできます。

もう1つの方法は、MySQL variableを使用して更新クエリを実行して、各行に対して増加する番号を生成することです(他のDBMSシステムにあるROW_NUMBER()関数をエミュレートする)。あなたにも、このために行くことができ

mysql> select @i := 0; 
mysql> update bar set c = (select @i := @i + 1); 
+0

私はmysql変数を使う前にそれをしたことを覚えていますが、私はこの時点で解決策を覚えていません。 ;( –

5
SET @a = 0; 
UPDATE customers SET id = @a:[email protected]+1; 

+0

私はPHPでこれを実装する方法を教えてくださいできますか? –

関連する問題