2008-10-29 6 views
2

이것은 this question의 속편입니다.MySql의 두 열에 부울 논리를 적용하려면 어떻게해야합니까? 그 중 하나는 Varchar입니까?

MySql select에서 세 개의 열을 하나로 결합하고 싶습니다. 첫 번째 두 열은 부울 값이고 세 번째 열은 문자열이며 때때로 null입니다. 이 이상한 결과가 발생합니다

Select *, (payment1_paid && ((payment2_paid || payment2_type ="none"))) as paid_in_full from payments 

참고 :payment1_paid 부울입니다 payment2_paid은 부울입니다 payment2_type은 VARCHAR입니다.

참고 :이 표의 구조가 얼마나 우스 찮은지 무시하십시오. 나쁜 코드의 모든 부분 뒤에는 긴 설명이 있습니다.

편집 : null은 varchar 값으로는별로 흥미롭지 않습니다. 나는 그것이 정말로 "none"인지를 알고 싶을뿐입니다.

미리 도움 주셔서 감사합니다.

답변

5

을 시도해보십시오

Select *, 
     (payment1_paid && ((payment2_paid || (payment_type IS NOT NULL && payment_type="none"))) 
     as paid_in_full 
from payments 

행운을 빕니다!

1

NULL이 틀렸습니까? 널 (null)이 당신을 위해 다음 흥미로운없는 경우 (payment_paid IS NULL || payment2_type = "none")

1
Select *, 
     (payment1_paid && ((payment2_paid || coalesce(payment2_type,"null") ="none"))) 
     as paid_in_full 
from payments