2016-04-07 18 views
-2

Bir sütunda bir sütunu güncellemeye çalışıyorum. Ancak, tablodaki belirli kayıtları güncellemeye çalışıyorum. Bir güncelleme bildirimi kullanmam gerektiğini biliyorum, ancak SET ve UPDATE ifadesinin mantığı konusunda kafam karıştı.SQL Tablosunda Belirli Satırları Güncelleştirmeye Çalışıyor

Temel olarak, belirli bir site kimliği ile ilgili olarak bir yorum bölümünü güncellemeye çalışıyorum.

UPDATE SQL_TABLE 
SET COMMENTS = "Comment 1" AND "Comment 2" 
WHERE SITE = 2000 , 2001 ; 
+0

"COMMENTS =" Yorum 1 "ve" Yorum 2 "ifadeleri ne anlama geliyor? Bundan sonra 'Yorumlar' sütununda görmek istediğiniz değer nedir? Ayrıca: dize değişmezleri SQL'de tek tırnak içine alınır. Çift tırnak tanımlayıcıları içindir. '' Denetim 1 '' bir dizi sabit –

+0

Muhtemelen alakasız, ama hala: hangi DBMS kullanıyorsunuz? –

+0

'NEREDE SİTE = 2000, 2001' YA DA SİTE İÇERİ (2000,2001)'? – Spidey

cevap

0

Tabloların genel olarak güncelleştirilmesi, kümeler halinde veya ayrı ayrı tek seferde yapılır.

Ancak eğer ** bu bir yaklaşımdır iki farklı değerlerle ZORUNLU *** güncelleme 2 kayıtlar: Aynı sorguda iki kayıtlarını güncellemek için çalışıyoruz gibi görünüyor

Update SQL_Table 
set comments = case when site = 2000 then 'Comment 1' 
        when site = 2001 then 'Comment 2' end 
WHERE SITE in (200,2001) 
+0

* Nods * (kaldırıldı – xQbert

0

. Bunu yapmak için, bir CASE deyimi ihtiyacımız olacak: Yanlışlıkla istemem kaydını değiştirmek kalmamak

UPDATE SQL_TABLE 
SET COMMENTS = CASE SITE 
        WHEN 2000 THEN "Comment 1" 
        WHEN 2001 THEN "Comment 2" 
        ELSE COMMENTS 
       END 
WHERE SITE IN (2000 , 2001); 

nedeni ELSE deyimi içindir.

İlgili konular