Mysql 仅在两个字段同时为空时才更新字段



我重写了完整的问题,因为我第一次不够清楚。

我正在尝试更新用户表中的给定行 ID 并仅填充空值,如下所示:

UPDATE USERS SET
address='Main Street' IF current address IS NULL
gender='M' AND full_name='JOHN SMITH' IF both gender and full_name ARE NULL
job='Mechanic' IF current job is NULL
WHERE id=123

我不知道如何同时更新性别和full_name,我希望其他字段仍然单独触发和更新,无论genderfull_name值如何

这可能是对您的问题的逐字回答:

UPDATE yourTable
SET gender = $gender,
full_name = $full_name
WHERE gender IS NULL AND full_name IS NULL

但是,如果性别或全名NULL,则更新记录似乎更有意义。 在这种情况下,您可以尝试:

UPDATE yourTable
SET gender    = COALESCE(gender, $gender),
full_name = COALESCE(full_name, $full_name)
WHERE gender IS NULL OR full_name IS NULL

SQLupdate语句中的if进入查询的WHERE部分:

UPDATE table_name SET gender = $gender WHERE gender IS NULL AND full_name IS NULL

我还要补充AND id = $id_you_want_to_update

相关内容

  • 没有找到相关文章

最新更新