mysql ifadeleri olur?

2 Cevap php

bu mysql sorgu ifadeleri söz konusu olduğunda bir if ifadesi var?

i bir tablo kayıt güncelleme ettiğimde, onlar güncelleştirilmesi gereken bir değer varsa, yalnızca belirli sütunları güncellemek istiyorum.

Örneğin, ben bir güncelleme masa işlevi istiyorum, ve gönüllüler ve sadece e-posta güncellemelerini isteyen insanlar için bir tablo için bir tablo var.

i (sadece gnc sorguları / w fiyatları bir işlev olacak) aynı işlevi kullanmak istiyorsanız ve bu teoride bunu yapmak mümkün ...

Eğer gönüllü tablosunu güncelleştirme eğer MAILING_LIST, daha sonra bu güncelleme, yalnızca, bu sütunları güncellemek

ben bu tarafından kullanılarak yapılabilir biliyorum bir iki sorgu güncelliyoruz hangi tablo dayalı tablolar, ama ben merak ediyorum w / deyimi mümkün uygun sütunları güncellemek için w içinde Koşullamalar / tek sorgu deyimi kullanmak için ise tablo.

Bu bana bildirin, sizin hakkınızda hayal bir şey gibi gelebilir.

teşekkürler.

2 Cevap

Ben bu çalışması gerektiğini düşünüyorum:

UPDATE volunteer, people
SET volunteer.email = 'me@email.com',
    people.email = 'other@gmail.com',
    people.first_name = 'first',
WHERE people.id = 2 AND volunteer.id = 5;

Ben MySQL web sitesinde update syntax bu var.

You could do this in one query, but it's not making sense to me why you would want to. Maybe describe the arguments to your desired function and what effect they would have?

Sen şartlı böyle bir şey güncelleyebilirsiniz:

update tablereferences
    set foo.bar = if( somebooleanexpression, newbarvalue, foo.bar ),
        baz.quux = if( somebooleanexpression, newbazvalue, baz.quux )
    where ...

Eğer tablo güncellenir aynı sorguyu ama kontrolü kullanmak için izin.