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

标签 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']);

我做错了。

最佳答案

不需要...脑损伤...。您可以通过查询来完成

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/

相关文章:

php - 模式匹配统一的句子结构

php - 无法连接到VPS上的端口

php - 用户 '' @'localhost' 的访问被拒绝(使用密码 : NO)

MySql 使用嵌套选择插入动态查询

java - 欧拉项目 3 解决方案

java - 设置页面-设置组合结果

php - 将现有的 zend 框架目录添加到 eclipse

php - 将chunk中的记录插入到mysql View 中

c++ - 如何使用 C++ (ubuntu) 连接到 MySQL 数据库

matlab - 如何将数组与 if 语句的数字进行比较?