Как я могу добавить значение с нуля?

0

Вот мой запрос:

UPDATE qanda SET amount = amount + 1000 WHERE id = ? AND type = 0;

amount столбцов по умолчанию равно null, и когда я выполняю запрос выше, ничего не происходит. Как я могу исправить проблему? Наверное, мне нужно кастинг.

  • 1
    Используйте COALESCE(amount, 0)
  • 0
    @GiorgosBetsos Это сработало, спасибо
Теги:

3 ответа

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 никогда не будет в столбце.

0

Вы можете попробовать функцию IFNULL(). Он вернется

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

UPDATE qanda SET amount = nvl (количество, 0) + 1000 WHERE id =? AND type = 0;

  • 0
    Объясните, что вы использовали в SQL
  • 0
    NVL () - функция оракула, этот вопрос помечен как mysql.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню