SQL

2013-08-06 10 views
15

bir sorgusunda birden çok satır için birden fazla sütun güncelleştirin Bir sorguda birden fazla satır için birden çok sütun ayarlamaya çalışıyorum, ancak şimdiye kadar şans yok. Ben de (3,4,5) IN user_id üzerinde 'ext_id' set ve istiyoruzSQL

enter image description here

kullanıcı ext_flag ayarlamak ister:

Burada Tablo

gibi benim masa nasıl göründüğü = Y ve admin_role = aynı satırlarda yönetici. enter image description here

Benim sorgu şöyle takip eder, fakat nedeniyle SQL sözdizimi yeterince tanımamaktan hatalara alıyorum gibi

çıkan tablo görünüyor.

update user 
set ext_flag = 'Y', admin_role = 'admin', ext_id = 
case 
when user_id = 2 then 345 
when user_id = 4 then 456 
when user_id = 5 then 789 
end 

Birden çok sütun içeren SET sözdiziminde zor zamanlar yaşıyorum.

cevap

27

deneyin bu

update user 
set ext_flag = 'Y', admin_role = 'admin', ext_id = 
case 
when user_id = 2 then 345 
when user_id = 4 then 456 
when user_id = 5 then 789 
end 
**WHERE user_id in (2,4,5)** 
Ayrıca ekleme işlemini kesmek olabilir
+0

! :) –

+0

güzel :) hoşgeldiniz! –

+0

Evet sir.SO, 5 dakika içinde cevabı işaretlemesine izin vermiyor. Bir dakika içinde işaretler. :) –

9

: çalışmış Cool..that

INSERT INTO mytable (id, a, b, c) 
VALUES (1, 'a1', 'b1', 'c1'), 
(2, 'a2', 'b2', 'c2'), 
(3, 'a3', 'b3', 'c3'), 
(4, 'a4', 'b4', 'c4'), 
(5, 'a5', 'b5', 'c5'), 
(6, 'a6', 'b6', 'c6') 
ON DUPLICATE KEY UPDATE id=VALUES(id), 
a=VALUES(a), 
b=VALUES(b), 
c=VALUES(c)