2017-02-16 3 views
0

에 NULL에 테이블의 모든 음의 값을 업데이트 : 나는 200 열이가장 효율적인 방법은 내가 하나 개의 컬럼에 대해 NULL에 테이블의 모든 음의 값을 업데이트 할 수 있습니다 MySQL의

UPDATE table_1 
SET var1 = NULL 
WHERE var1 < 0 
; 

이 큰하지만 어떤 나는이 UPDATE를 적용하고 싶다.

이 동일한 패러다임을 명시 적으로 200 번 실행하여 각 변수를 한 번에 하나씩 업데이트 할 수 있습니다. 그러나 이것은 약 1,000 줄의 코드를 사용해야한다는 것을 의미합니다.

if을 사용하면 200 줄 가까이에서 처리 할 수 ​​있습니다. 그러나 이것은 여전히 ​​나를 끈적하고 불만족스럽게 느끼게합니다.

R에서 이와 같은 작업을 수행하고자 할 때 df[df<0] <- NA과 같은 것을 사용할 수 있으며 몇 번의 키 입력으로 할 수 있습니다.

MySQL에서는 간결하고 우아하고 지능적인 방식으로이 문제에 접근 할 수있는 방법이 있습니까?

+0

귀하의 디자인이 끊어집니다. 데이터베이스 테이블은 스프레드 시트가 아닙니다. – Strawberry

+0

사실은 임시 테이블입니다. 일부는 탐색 목적으로 주변을 돌고 있습니다. 그 끝으로 나는 다양한 사내 오류 코드와 이것 저것을 나타내는 모든 음수 값을 바꿀 필요가있다 ... 나는 이것들을 NULL로 생각하고 싶다. –

답변

1

당신은 조건이 만족되지 않을 때 다시 그들에게 원래의 값을 할당 IF()를 사용하여 조건부로 열을 업데이트 할 수 있습니다

UPDATE table_1 
SET var1 = IF(var1 < 0, NULL, var1), 
    var2 = IF(var2 < 0, NULL, var2) 
    ... 
+0

대단히 효과적 일 것이다. – Strawberry

+0

@Strawberry 어떻게'GREATEST'를 사용하겠습니까? 이? – Barmar

+0

Nevermind - OP가 NULL이 아닌 0을 원한다고 생각했습니다. – Strawberry