我的查询正在与数据库数据进行比较,如果数据库内容等于或大于搜索条件($musage),则选择数据到结果
*-1是"Unlimited"的平均值
问题是当数据库数据为-1时,"实际上它小于每个正整数",但在我的数据库中它大于每个数字。执行select查询以获取数据库的内容到结果中,如何控制数据库内容等于-1的情况?
下面是我的代码:$device = $_POST['device'];
$provider1 = $_POST['provider1'];
$plantype = $_POST['plantype'];
$dusage = $_POST['dusage'];
$cusage = $_POST['cusage'];
$musage = $_POST['musage'];
//default query
$MSGQuery = " plan.`MSG` >= $musage ";
//when search criteria is unlimited
if( $musage == 'Unlimited' ){
$MSGQuery = " plan.`MSG` = -1 ";
}//when search criteria is 0
else if ( $musage == 0 ){
$MSGQuery = " plan.`MSG` >= -1 ";
}
else {
$MSGQuery = " plan.`MSG` >= $musage ";
}
echo $planquery="
SELECT plan.*, details.* FROM plan
LEFT JOIN details ON plan.`Name` = details.`Name`
WHERE plan.`Phone` = '$device'
AND plan.`SIMTYPE` = '$plantype'
AND plan.`DATA` >= $dusage
AND plan.`CALL` >= $cusage
AND $MSGQuery ";
$planresult=mysql_query($planquery)
or die ("Query to get data from firsttable failed: ".mysql_error());
while ( $prow = mysql_fetch_assoc($planresult) ) {
使用条件:
...
AND (plan.`DATA` >= $dusage OR plan.`DATA` = -1)
...
不要忘记括号,因为AND的优先级高于OR。