在mysql更新查询中使用IF语句

时间:2013-09-20 23:21:17

标签: php mysql if-statement

我试图找到一种方法将值插入两列中的一列,具体取决于哪一列为NULL。

$accept_sth = $dbh->prepare("UPDATE user_properties 
    IF(followup_offer <> NULL, fstatus=?)
    ELSE (istatus=?) 
    WHERE id=?");

$accept_sth->execute($_POST['option'], $_POST['id']);

我做错了。

1 个答案:

答案 0 :(得分:3)

没有 ......脑损伤...... 是必要的。您可以使用查询

来完成
UPDATE user_properties 
   SET fstatus = IF(followup_offer IS NULL, fstatus, ?),
       istatus = IF(followup_offer IS NULL, ?, istatus)
 WHERE id = ?

注意:这种类型的条件SET查询的一些情况唯一可能的缺点是每次都更新两列(一个有值,一个有旧值) )。

这是 SQLFiddle 演示