2010-08-16 5 views
11

MySQL은 TinyINT를 사용하여 부울 필드로 사용합니다. 나는 다음과 같은 값을 플립 것 결정, 0과 1의 가능한 옵션을 감안할 때 : MySQL 부울 - 값을 뒤집기?

UPDATE table 
SET boolean_field = ABS(boolean_field - 1) 
WHERE Circle-K = 'Strange things are afoot' 

그래서 당신이 1 이동 중 -> 0 -> ABS (0) = 0

0 - > -1 -> ABS (-1) =이 허용 또는 실제 프로그래머 끔찍한 경우

1 지금은 궁금 하군요?

가/나 또한 field = 1 사용할 수있는 초보자

답변

44

이유는 단순히 사용

 
UPDATE the_table 
    SET boolean_field = NOT boolean_field 
WHERE ... 

는 당신의 의도를 만든다 훨씬 쉽게이 정말 주석이 아닌 질문에 대한 답변입니다

+0

+1은 가독성을 높이고 (아마도) 속도를 희생하지는 않습니다. – paxdiablo

+0

+1 : 유효하지 않음을 알았습니까? 4.1에서 확인되었습니다. –

12

입니다 - field 또는 field =! field

+0

읽을 수 있습니다. 작성자에 대한 의견을 남기려면 "의견 추가"를 사용하십시오. – Pratik

+8

@Pratik : 답변입니다 (OP가 원하는 한 오랫동안). 귀하의 언급에 감사드립니다. – zerkms

+0

필드 =! 이 필드는 정답입니다. – rishad2m8

관련 문제