用值替换表中整行的最佳方法是什么,但只有在我们拥有的值不为NULL时才替换特定值。
详细说明,我目前使用此查询:
INSERT OR REPLACE INTO items (name, quantity, last_user) VALUES ('test', '3', 'John');
现在我要做的是运行上面的查询,如果指定的值不是NULL,则只替换last_user。其余的我想替换。
理想情况下,如果最后一个用户现在为NULL,请保留最后一个字段。我当然可以使用SELECT
语句来获取最后一个已知值,检查新值是否为NULL以及是否插入最后一个已知值 - 但我想使用单个查询来执行此操作。 / p>
答案 0 :(得分:2)
使用带COALESCE
的更新语句,传递旧值和新值。如果它不为null,这将允许您保留现有值,如果它为null,则将其替换。
UPDATE MyTable
SET
name = 'new-name',
value = COALESCE(value, 'possible-new-value')
WHERE
id = 1;