2008-10-10 84 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 ... 

让您使用哪些表更新了同样的查询,但控制。