【发布时间】:2010-09-16 10:27:12
【问题描述】:
mysql查询语句有if语句吗?
当我更新表记录时,我只想更新某些列,如果它们有要更新的值。
例如,我想要一个更新表格功能,有一个表格供志愿者使用,还有一个表格供只需要电子邮件更新的人使用。
我想使用相同的函数(会有一个只处理 upd 查询的函数),理论上是否可以这样做......
如果您正在更新志愿者表,则只更新这些列,如果是 mailing_list,则更新这些
我知道这可以通过使用带有两个查询语句的 if 语句来完成,具体取决于您要更新的表,但我想知道是否可以只使用一个带有条件的查询语句来更新表格中的相应列。
这听起来像是你梦寐以求的事情,请告诉我。
谢谢。
【问题讨论】:
-
您是否尝试在一个查询中更新两个表?你的问题不是很清楚
-
所以,澄清一下。您希望一个 SQL 语句更新两个具有不同字段名称的不同表吗?类似于:更新志愿者,mailing_list SET IF(table = 志愿者,volEmail,mailEmail) = 'xyz';
-
@nickf - 没错,所以当我在路上进行更改时,我不必更改多个项目,而是一个查询。或者我应该对每个实例都有不同的查询,通过 switch/case 语句调用适当的查询。让我知道什么更实用。
-
这让我认为,如果它们在性质上足够相似,您可以在相似查询之间切换,那么组合这些表可能会更好