sql查询仅更新一个字段

时间:2019-02-21 13:01:41

标签: php mysql sql

我正在构建PHP和sql API,并尝试创建更新查询:

$sql = "UPDATE boxes 
    SET box_id = :box_id, channel = :channel, status = :status 
    WHERE id = $id";

问题是,例如,如果我仅更新频道,则数据库中的其他字段将变为空。

我希望用户能够选择是否要更新所有字段,仅更新一部分还是仅更新一个字段。

谢谢

1 个答案:

答案 0 :(得分:2)

您要寻找coalesce()吗?

UPDATE boxes
    SET box_id = COALESCE(:box_id, box_id),
        channel = COALESCE(:channel, channel),
        status = COALESCE(:status, status)
    WHERE id = :id;

请注意,我也为:id命名了一个参数。