2016-06-07 13 views
1

Es ist wahrscheinlich ein sehr grundlegendes Problem, aber ich kann keine Lösung dafür finden. Ich muss Datensätze auswählen, bei denen mindestens einer der Werte nicht 0 oder leer ist. Ich überprüfe 3 Spalten.MySQL - Wählen Sie die Zeile nur, wenn mindestens einer der Werte nicht null oder leer ist

Mein Code:

$results = $mysqli->query("SELECT * FROM table 
    WHERE datestamp>='$startdate' AND datestamp<='$finishdate' 
     AND ((h1col !='' OR h1col !='0') OR (h2col !='' OR h2col !='0') 
        OR (h3col !='' OR h3col !='0'))"); 

Können Sie mir bitte auf dem richtigen Weg. Vielen Dank. Immer bereit zu lernen. (:

Antwort

1

Sie waren ziemlich nah dran, müssen nur and an einigen Stellen verwenden, statt or:

SELECT * 
FROM table 
WHERE datestamp>='$startdate' 
    AND datestamp<='$finishdate' 
    AND ((h1col !='' AND h1col !='0') OR 
     (h2col !='' AND h2col !='0') OR 
     (h3col !='' AND h3col !='0')) 
+2

oder kürzer ... 'AND (h1col NICHT IN ('', '0') OR h2col NICHT IN ('', '0') ODER ... ' – spencer7593

+0

beide Vorschläge funktionierten. Ich entschied mich für die von @ spencer7593 als kürzer. Gut ein vielen Dank. Ich weiß bereits, dass ich "NOT IN" verwenden werde woanders auch. – Nita

Verwandte Themen