逻辑要求,查询上结构混乱


Logic require, structure confuse on query

我的查询正在与数据库数据进行比较,如果数据库内容等于或大于搜索条件($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。