我重写了完整的问题,因为我第一次不够清楚。
我正在尝试更新users表中的给定行id并仅填充null值,如下所示:
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,我希望其他字段仍可以单独触发和更新,而不管gender
和full_name
值
答案 0 :(得分:3)
这可能是您问题的逐字答案:
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
答案 1 :(得分:0)
if
中的update
语句中的SQL
会进入查询的WHERE
部分:
UPDATE table_name SET gender = $gender WHERE gender IS NULL AND full_name IS NULL
我还要添加
AND id = $id_you_want_to_update