MySqlの2つの列でブール論理を行うにはどうすればよいですか?そのうちの1つはVarcharです?
質問
これはこの質問の続編です> 。
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
所属していません StackOverflow