2011-03-20 2 views
12

기본값이 null 인 두 개의 INT 열이있는 매우 큰 테이블이 있습니다. 이것은 INT 필드이므로 원래 0으로 설정하면 많은 도움이됩니다.mysql update increment null null 인 int 필드

내 질문에 이러한 필드를 업데이트하고 (+1) 할 수있는 방법이 있습니까? 그들은 이것처럼 (기본값은 null)? 기본 = 0

.. 또는이 null

답변

26
UPDATE TableName SET column = IFNULL(column, 0) + 1 WHERE ... 

More info on IFNULL에서 없음으로 기본값을 변경하는 내 유일한 옵션 인 경우 BTW ... 내가 지금까지 운이 없었다, 그것은 증가 보인다에만 작동합니다. NULL이 아닌 경우 첫 번째 인수를 반환하고 그렇지 않으면 두 번째 인수를 반환합니다.

1

필드를 NOT NULL으로 설정하여 문제를 없애고 null 대신 기본값 0이 사용되도록하십시오. 또 다른 옵션은 null이 될 때마다 column을 0으로 설정하는 것입니다.

UPDATE TableName SET FieldName = '0' WHERE FieldName IS NULL 

다른 대안은 열이 null 다음 열을 증가시키는 경우에는 0을 반환 IFNULL를 발행하는 것입니다.

UPDATE TableName SET FieldName = IFNULL(FieldName,0)