我有一個高級搜索表單,有三個字段。用戶可以使用任何字段或任何兩個或所有字段開始搜索。所以我想檢查用戶是否爲特定字段輸入了值,並根據通過一系列if循環提供的值來查詢查詢。但我很想知道在mysql中是否有任何equvailent技術來避免if循環並在單個查詢中實現搜索。高級搜索3字段,需要查詢
以下是檢查用戶輸入的示例。
if($school!="" & $district1!="" & $scl_type!="")
{
echo "3 fields available";
}
else if($school=="" & $district1!="" & $scl_type!="")
{
echo "school empty, district,schooltype available";
}
else if($school!="" & $district1=="" & $scl_type!="")
{
echo "school,school type available district empty";
}
else if($school!="" & $district1!="" & $scl_type=="")
{
echo "school,district only present,school type is empty";
}
.....
所以我在每個if語句編寫不同的查詢。有沒有捷徑?
< ----更新:---> 我得到了這個查詢,它工作正常。但是當同一地區有兩所學校只有一所學校可以返回時。它只返回一個結果,甚至很多結果可用,該怎麼辦?
SELECT * FROM `register` WHERE
(schoolname IS NULL OR schoolname LIKE '%national%')
AND
(schooltype IS NULL OR schooltype LIKE '%state board%')
AND
(district IS NULL OR district LIKE '%thiruvarur%');
可能重複http://stackoverflow.com/questions/12600427/php-mysql-function-with-optional-parameter) –