2011-03-20 40 views
12

Varsayılan olarak null olan iki INT sütun içeren çok büyük bir tablom var. onlar INT alanlar olduğundan başlangıçta Yani benim sorular burada 0.mysql güncelleştirme arttırma int alanı null olan

olarak ayarlanması durumunda, bu birçok durumda yardımcı olacağını, çünkü bu bir sorundur, bir ben GÜNCELLENECEK edebilirsiniz yolu ve ARTTIRMA (1) bu alanlar ise orada onlar böyle (varsayılan boş)? default = 0

..ya boş

cevap

26
UPDATE TableName SET column = IFNULL(column, 0) + 1 WHERE ... 

More info on IFNULL dan hiçbiri Varsayılan olarak değiştirin benim tek seçenek olduğunda BTW .. Bugüne kadar şans yoktu, bu artırmaz görünüyor çalışır. Aksi takdirde ikinci, NULL değilse ilk bağımsız değişkeni döndürür.

1

Alanı sıfırlamak için alanı NOT NULL olarak ayarlamayı deneyin, böylece boş değer yerine varsayılan değer 0 kullanılır. Diğer seçenek, null olduğunda sütunu sıfır olarak ayarlamaktır.

UPDATE TableName SET FieldName = '0' WHERE FieldName IS NULL 

Diğer alternatif sütun null ve sonra sütunu artırmak durumda 0 dönmek için IFNULL sorunu olacaktır.

UPDATE TableName SET FieldName = IFNULL(FieldName,0)