我正在使用下面的代碼在數據庫中搜索某個列中輸入值之上或之下的條目。SQL中的數學運算符不排除「NA」值
if (isset($_POST["abovebelow"]) && $_POST["abovebelow"] == "Above"){
$operator = ">";
}
elseif (isset($_POST["abovebelow"]) && $_POST["abovebelow"] == "Below"){
$operator = "<";
}
elseif (!isset($_POST["abovebelow"])){
$operator = "LIKE";
$value = "%";
}
$result = $mysqli->prepare("SELECT t.column FROM table t WHERE t.value".$operator." (?);");
$result->bind_param($value);
$result->execute();
對於這個數據集,t.value是-1,0,1或NA。當我將查詢設置爲-1或0以上時,NA值也顯示出來。但是當我將它設置爲低於1或0時,不會顯示NA值。爲什麼是這樣?有什麼我可以添加到查詢,以防止NA值顯示上面或下面選擇時(但沒有選擇時沒有)?
我正在考慮上述問題的方式是:有沒有辦法在查詢中有不同數量的參數?我在考慮如果選擇上面或下面,那麼查詢可以附加「AND t.value!='NA'」。這也有助於有一個複選框允許或不允許用戶根據上述/下面的標準判斷是否有「NA」值。
如何在數據庫中存儲'NA'值?它是否爲'NULL'? –
如果你只是想要不同的查詢,你可以將它移動到if語句中。 – aron9forever
NA值存儲爲「NA」不爲空。我不能把它放在if語句中,因爲上面是一個簡化版本。我有多個運算符和值,不想寫所有可能的組合。 – Steven