2008-10-10 113 views
0

當涉及到mysql查詢語句時,是否有if語句?if語句在mysql中?

當我更新表記錄時,我想只更新某些列,如果他們有值更新。

例如,我想要一個更新表函數,並且有一個志願者表和一個表,供剛剛想要電子郵件更新的人使用。

我想使用相同的功能(將有一個功能,只涉及瓦特/ UPD查詢)是有可能做到這一點在理論上...

如果更新志願表,只更新這些列,如果mailing_list,然後更新這些

我知道這可以通過使用if語句瓦特/兩個查詢語句,根據您更新的表,但我想知道是否有可能只使用一個查詢語句以及其中的條件來更新表中的相應列。

這可能聽起來像你夢想的事情,讓我知道。

謝謝。

+0

你是否試圖在一個查詢中更新兩個表?從你的問題 – 2008-10-10 02:25:27

回答

3

我認爲這應該工作:

UPDATE volunteer, people 
SET volunteer.email = '[email protected]', 
    people.email = '[email protected]', 
    people.first_name = 'first', 
WHERE people.id = 2 AND volunteer.id = 5; 

我得到這個從update syntax MySQL的網站上。

0

可能在一個查詢中這樣做,但它對我來說沒有意義,爲什麼你會想。 也許描述你想要的功能的參數,他們會有什麼影響?

可以有條件地更新這樣的事情:

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

讓您使用哪些表更新了同樣的查詢,但控制。