2011-10-19 22 views
53

İki DATETIME sütunlu bir tablom var.Bir sütunun SQL değerlerini aynı tablodaki başka bir sütunun değerlerine eşit olarak ayarlar

Bunlardan biri asla NULL değil, bunlardan biri bazen NULL.

Ben MySQL tezgah gelmez çünkü yürütmüyor seçilen cevap ben this example denedi

A sütunundaki değerlere eşit sütun B için tüm NULL satırları ayarlayacaktır bir sorgu ancak SQL yazmak gerekiyor GÜNCELLEMEDEN FROM gibi görünmüyor.

update your_table 
set B = A 
where B is null 

cevap

92

geliyor. Aynı tablodaki başka bir sütundan yalnızca bir sütunu güncelliyorsanız, bunun gibi bir şey kullanabilmeniz gerekir.

update some_table set null_column = not_null_column where null_column is null 
15
UPDATE YourTable 
SET ColumnB=ColumnA 
WHERE 
ColumnB IS NULL 
AND ColumnA IS NOT NULL 
4

diğer örnek, aradığınızı olduğunu sanmıyorum: Eğer sadece bir tabloda bu gibi pek bir şey çalışıyormuş gibi

12

ben bu şekilde yapardı:

UPDATE YourTable SET B = COALESCE(B, A); 

BIRLEŞIM ilk boş olmayan argüman döndüren bir fonksiyondur.

Bu örnekte, belirli bir satırdaki B değeri boş değilse, güncelleştirme işlem dışıdır.

B boşsa, COALESCE bunu atlar ve bunun yerine A kullanır.
ColumnB
VE kolumna IS NULL

0

GÜNCELLEME YourTable
SET ColumnB = kolumna
IS NOT NULL;

İlgili konular