在mysql中的if语句?

时间:2008-10-10 02:13:28

标签: php mysql

是否有关于mysql查询语句的if语句?

当我更新表记录时,我想只更新某些列,如果它们有值要更新。

例如,我想要一个更新表功能,并且有一个志愿者表和一个只想要电子邮件更新的人的表。

我想使用相同的函数(将会有一个只处理upd查询的函数)并且理论上可以做到这一点......

如果您要更新志愿者表,只更新这些列,如果是mailing_list,则更新这些

我知道这可以通过使用带有两个查询语句的if语句完成,基于你正在更新的表,但我想知道是否可以只使用一个查询语句w /条件来更新表中的相应列。

这听起来像是你梦寐以求的东西,让我知道。

感谢。

2 个答案:

答案 0 :(得分:3)

我认为这应该有效:

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;

我是从MySQL网站上的update syntax获得的。

答案 1 :(得分:0)

可以在一个查询中执行此操作,但这对我来说没有意义,为什么你想要。 也许描述你想要的功能的论据以及它们会产生什么影响?

您可以有条件地更新以下内容:

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

允许您使用相同的查询,但控制更新哪些表。