Come faccio a fare la logica booleana su due colonne in MySql, una delle quali è un Varchar?
Domanda
Questo è il seguito di questa domanda .
Vorrei combinare tre colonne in una su una selezione di MySQL. Le prime due colonne sono booleane e la terza è una stringa, che a volte è nulla. Ciò provoca strani risultati:
Select *, (payment1_paid && ((payment2_paid || payment2_type ="none"))) as paid_in_full from payments
Nota: payment1_paid
è booleano, payment2_paid
è booleano, payment2_type
è varchar.
Nota: ignora quanto sia ridicola la struttura di questa tabella. Dietro ogni codice errato c'è una lunga spiegazione :)
Modifica: Null non è interessante per me per il valore varchar. Voglio solo sapere se è davvero " none. & Quot;
Grazie in anticipo per il tuo aiuto!
Soluzione
Se null non è interessante, allora per te:
Select *,
(payment1_paid && ((payment2_paid || (payment_type IS NOT NULL && payment_type="none")))
as paid_in_full
from payments
Buona fortuna!
Altri suggerimenti
Suppongo che vuoi che NULL sia falso? Prova (payment_paid IS NULL || payment2_type = " none ")
Select *,
(payment1_paid && ((payment2_paid || coalesce(payment2_type,"null") ="none")))
as paid_in_full
from payments