我正在尝试找到一种方法,根据哪一列为 NULL,将值插入到其中一列中。
$accept_sth = $dbh->prepare("UPDATE user_properties
IF(followup_offer <> NULL, fstatus=?)
ELSE (istatus=?)
WHERE id=?");
$accept_sth->execute($_POST['option'], $_POST['id']);
我做错了。
最佳答案
不需要...脑损伤...。您可以通过查询来完成
UPDATE user_properties
SET fstatus = IF(followup_offer IS NULL, fstatus, ?),
istatus = IF(followup_offer IS NULL, ?, istatus)
WHERE id = ?
注意:对于这种带有条件 SET
的查询的某些场景,唯一可能的缺点是每次都会更新两列(一个有值,一个有旧的)。
这是 SQLFiddle 演示
关于php - 在 mysql 更新查询中使用 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18927236/