MYSQL SELECT
bearbeitet von
Hallo
> ~~~
> SELECT * FROM lieferschein WHERE (STATUS != 'ok' AND LIEFART ='2') OR (STATUS!= 'ok' AND LIEFART = '3')
> ~~~
Abgesehen von den Besonderheiten im Umgang mit `NULL`, auf die @dedlfix [schon eingegangen](https://forum.selfhtml.org/self/2021/jan/13/mysql-select/1780429#m1780429) ist, lässt sich der Query auch noch weiter vereinfachen. Solange du *einheitlich* auf den Aus- oder den Einschluss von Werten prüfen willst, kannst du `IN()` beziehungsweise `NOT IN()` für den Vergleich benutzen. Hier könntest du also die Prüfung auf andere Werte als `'2'` oder `'3'` mit `LIEFART NOT IN('2', '3')` (oder `LIEFART NOT IN(2, 3)`), falls das als Datentyp doch Zahlen sein sollten) vornehmen.
~~~sql
SELECT *
FROM lieferschein
WHERE (STATUS != 'ok' OR STATUS IS NULL)
OR LIEFART NOT IN('2', '3')
~~~
Tschö, Auge
--
Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
*Hohle Köpfe* von Terry Pratchett
MYSQL SELECT
bearbeitet von
Hallo
> ~~~
> SELECT * FROM lieferschein WHERE (STATUS != 'ok' AND LIEFART ='2') OR (STATUS!= 'ok' AND LIEFART = '3')
> ~~~
Abgesehen von den Besonderheiten im Umgang mit `NULL`, auf die @dedlfix [schon eingegangen](https://forum.selfhtml.org/self/2021/jan/13/mysql-select/1780429#m1780429) ist, lässt sich der Query auch noch weiter vereinfachen. Solange du *einheitlich* auf den Aus- oder den Einschluss von Werten prüfen willst, kannst du `IN()` beziehungsweise `NOT IN()` für den Vergleich benutzen. Hier könntest du also die Prüfung auf andere Werte als `'2'` oder `'3'` mit `LIEFART NOT IN('2', '3')` (oder `LIEFART NOT IN(2, 3)`, falls das als Datentyp doch Zahlen sein sollten) vornehmen.
~~~sql
SELECT *
FROM lieferschein
WHERE (STATUS != 'ok' OR STATUS IS NULL)
OR LIEFART NOT IN('2', '3')
~~~
Tschö, Auge
--
Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
*Hohle Köpfe* von Terry Pratchett