2016-06-07 102 views
1

這可能是非常基本的問題,但我找不到解決方案。我需要選擇其中至少有一個值不爲0或空的記錄。我檢查3列。MySQL - 僅當至少一個值不爲空或空值時才選擇行

我的代碼:

$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'))"); 

能否請你把我在正確的軌道上。謝謝。總是樂於學習。 (:

回答

1

你是非常接近,只需要使用一些地方and,而不是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

或短...'AND(h1col NOT IN( '', '0')或h2col不是('','0')或者......' – spencer7593

+0

這兩個建議都起作用了。我選擇了@ spencer7593中的一個更短。很好,非常感謝你。我已經知道我將使用「NOT IN」其他地方。 – Nita

相關問題