我试图找到一种方法将值插入两列中的一列,具体取决于哪一列为NULL。
$accept_sth = $dbh->prepare("UPDATE user_properties
IF(followup_offer <> NULL, fstatus=?)
ELSE (istatus=?)
WHERE id=?");
$accept_sth->execute($_POST['option'], $_POST['id']);
我做错了。
答案 0 :(得分:3)
没有 ......脑损伤...... 是必要的。您可以使用查询
来完成UPDATE user_properties
SET fstatus = IF(followup_offer IS NULL, fstatus, ?),
istatus = IF(followup_offer IS NULL, ?, istatus)
WHERE id = ?
注意:这种类型的条件SET
查询的一些情况唯一可能的缺点是每次都更新两列(一个有值,一个有旧值) )。
这是 SQLFiddle 演示