MySQL의 두 열에서 부울 논리를 어떻게합니까? 그 중 하나는 Varchar입니까?

StackOverflow https://stackoverflow.com/questions/248753

  •  05-07-2019
  •  | 
  •  

문제

이것은 속편입니다 이 질문.

MySQL Select에서 세 열을 하나로 결합하고 싶습니다. 처음 두 열은 부울이고 세 번째 열은 문자열이며 때로는 널입니다. 이것은 이상한 결과를 초래합니다.

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

메모: payment1_paid 부울입니다. payment2_paid 부울입니다. payment2_type Varchar입니다.

메모: 이 테이블의 구조가 얼마나 우스운 지 무시하십시오. 모든 나쁜 코드 뒤에는 긴 설명이 있습니다 :)

편집하다: Null은 Varchar 값에 대해 흥미롭지 않습니다. 나는 그것이 실제로 "없음"인지 알고 싶습니다.

도와 주셔서 미리 감사드립니다!

도움이 되었습니까?

해결책

Null이 흥미롭지 않다면 다음 :

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

행운을 빕니다!

다른 팁

Null이 거짓이되기를 원하십니까? 노력하다 (payment_paid IS NULL || payment2_type = "none")

Select *, 
      (payment1_paid && ((payment2_paid || coalesce(payment2_type,"null") ="none"))) 
         as paid_in_full 
from payments
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top