Wie mache ich die Boolesche Logik auf zwei Spalten in MySQL, von denen eines ein Varchar ist?
Frage
Dies ist die Fortsetzung zu diese Frage.
Ich möchte drei Spalten in einem auf einem MySQL -Auswahl kombinieren. Die ersten beiden Spalten sind boolean und die dritte ist eine Zeichenfolge, die manchmal null ist. Dies verursacht seltsame Ergebnisse:
Select *, (payment1_paid && ((payment2_paid || payment2_type ="none"))) as paid_in_full from payments
Notiz: payment1_paid
ist boolean, payment2_paid
ist boolean, payment2_type
ist varchar.
Notiz: Bitte ignorieren Sie, wie lächerlich die Struktur dieser Tabelle ist. Hinter jedem schlechten Code gibt es eine lange Erklärung :)
Bearbeiten: Null ist für mich für den Varchar -Wert nicht interessant. Ich möchte nur wissen, ob es wirklich "keine" ist.
Vielen Dank im Voraus für Ihre Hilfe!
Lösung
If null is not interesting then for you then:
Select *,
(payment1_paid && ((payment2_paid || (payment_type IS NOT NULL && payment_type="none")))
as paid_in_full
from payments
Good luck!
Andere Tipps
I guess you want NULL to be false? Try (payment_paid IS NULL || payment2_type = "none")
Select *,
(payment1_paid && ((payment2_paid || coalesce(payment2_type,"null") ="none")))
as paid_in_full
from payments