我如何加上null值?

时间:2018-04-07 06:15:23

标签: mysql sql

这是我的问题:

UPDATE qanda SET amount = amount + 1000 WHERE id = ? AND type = 0;
默认情况下,

amount列为null,当我执行上述查询时,没有任何反应。我该如何解决这个问题?我想我需要施法。

3 个答案:

答案 0 :(得分:0)

UPDATE qanda SET amount = nvl(amount,0)+ 1000 WHERE id =? AND type = 0;

答案 1 :(得分:0)

你可以试试IFNULL()函数。它会返回

UPDATE qanda SET amount = ifnull(amount,0) + 1000 WHERE id = ? AND type = 0;

答案 2 :(得分:0)

ANSI标准函数为COALESCE()

UPDATE qanda
    SET amount = COALESCE(amount, 0) + 100
    WHERE id = ? AND type = 0;

有些数据库有其他神秘的功能可以做同样的事情。 。 。例如nz()ifnull()nvl()。尽可能坚持标准。

我应该注意到你可以解决这个问题"用另一种方式。定义列时,请为其指定默认值:

create table quanda (
    . . . 
    amount int not null default 0
    . . .
);

这将确保NULL永远不在列中。

相关问题