Ответ 1
UPDATE TableName SET column = IFNULL(column, 0) + 1 WHERE ...
Дополнительная информация о IFNULL
. Он возвращает первый аргумент, если он не NULL
, второй - в противном случае.
У меня очень большая таблица с двумя столбцами INT, которые имеют значение null по умолчанию. Это проблема, потому что поскольку они являются полями INT, во многих случаях это помогло бы, если бы они были первоначально установлены на 0.
Итак, мои вопросы: есть ли способ, которым я могу ОБНОВИТЬ и INCREMENT (+1) эти поля, пока они такие (null on Default)? BTW.. Мне пока не повезло, кажется, что приращение работает только тогда, когда значение по умолчанию = 0
.. или это моя единственная возможность изменить значение по умолчанию на none из null
UPDATE TableName SET column = IFNULL(column, 0) + 1 WHERE ...
Дополнительная информация о IFNULL
. Он возвращает первый аргумент, если он не NULL
, второй - в противном случае.
Попробуйте установить поле как NOT NULL
, чтобы уйти с проблемой, чтобы вместо 0 использовалось значение по умолчанию 0. Другой вариант - установить столбец как ноль, когда он равен нулю.
UPDATE TableName SET FieldName = '0' WHERE FieldName IS NULL
Другой альтернативой было бы выпустить IFNULL для возврата 0 в случае, если столбец является нулевым, а затем увеличивать столбец.
UPDATE TableName SET FieldName = IFNULL(FieldName,0)