MySqlの2つの列でブール論理を行うにはどうすればよいですか?そのうちの1つはVarcharです?

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

  •  05-07-2019
  •  | 
  •  

質問

これはこの質問の続編です>

MySql selectで3つの列を1つに結合したいと思います。最初の2つの列はブール値で、3番目の列は文字列です。これは奇妙な結果を引き起こします:

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

注: payment1_paid はブール値、 payment2_paid はブール値、 payment2_type はvarcharです。

注:このテーブルの構造がいかに馬鹿げているかは無視してください。悪いコードのあらゆる部分の後ろには長い説明があります:)

編集: varchar値の場合、nullは興味がありません。本当に「なし」かどうかだけを知りたいです

ご協力ありがとうございます。

役に立ちましたか?

解決

nullがおもしろくない場合は、次のようにします。

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

がんばって!

他のヒント

NULLをfalseにしたいですか? (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