Bir sütunun SQL set değerleri, aynı tablodaki başka bir sütunun değerlerine eşittir


97

İki DATETIME sütunlu bir tablom var.

Bunlardan biri asla NULL değildir, ancak bunlardan biri bazen NULL olur.

B sütununun tüm NULL satırlarını A sütunundaki değerlere eşit ayarlayacak bir sorgu yazmam gerekiyor.

Bu örneği denedim, ancak seçilen yanıttaki SQL çalışmıyor çünkü MySQL Workbench UPDATE'deki FROM'u beğenmiyor gibi görünüyor.

Yanıtlar:


159

Görünüşe göre tek bir masada çalışıyormuşsunuz, bu yüzden şöyle bir şey:

update your_table
set B = A
where B is null

21
UPDATE YourTable
SET ColumnB=ColumnA
WHERE
ColumnB IS NULL 
AND ColumnA IS NOT NULL

21

Bunu şu şekilde yapardım:

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

COALESCE, ilk boş olmayan argümanını döndüren bir işlevdir.

Bu örnekte, belirli bir satırdaki B boş değilse, güncelleme işlemsizdir.

B boş ise, COALESCE onu atlar ve onun yerine A'yı kullanır.


5

Diğer örneğin aradığınız şey olduğunu sanmıyorum. Aynı tablodaki başka bir sütundan yalnızca bir sütunu güncelliyorsanız, bunun gibi bir şey kullanabilmelisiniz.

update some_table set null_column = not_null_column where null_column is null

2

İşte Sütun A'dan Sütun B'ye başa çıkmanıza yardımcı olabilecek örnek kod:

UPDATE YourTable
SET ColumnB = ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL;

Moderatör Notu - Lütfen yayınınıza geçerli güncellemeleri geri almayın.
Bhargav Rao
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.