Come faccio a fare la logica booleana su due colonne in MySql, una delle quali è un Varchar?

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

  •  05-07-2019
  •  | 
  •  

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!

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top