MySQL如果条件

MySQL如果条件,mysql,if-statement,Mysql,If Statement,虽然我已经阅读了参考资料,但我对if条件不太熟悉,以下是我开始的陈述: $Phone = $MyDB['Phone']; $Mobile = $MyDB['Mobile']; "SELECT * FROM TABLE WHERE ((number LIKE '%$Phone%') OR (number LIKE '%$Mobile%))"; 现在有可能$Phone或$Mobile可能等于零,但不能都等于零,在这种情况下,此查询将返回所有数据。所以我想我可以试试: $NoValue = '';

虽然我已经阅读了参考资料,但我对if条件不太熟悉,以下是我开始的陈述:

$Phone = $MyDB['Phone'];
$Mobile = $MyDB['Mobile'];

"SELECT * FROM TABLE WHERE ((number LIKE '%$Phone%') OR (number LIKE '%$Mobile%))";
现在有可能$Phone或$Mobile可能等于零,但不能都等于零,在这种情况下,此查询将返回所有数据。所以我想我可以试试:

$NoValue = '';

"SELECT * FROM TABLE WHERE IF('$Phone' != '$NoValue', (number LIKE '%$Phone%'), (number LIKE '%Mobile%'))";

当然,这是查询实际情况的一个非常简化的版本,因为我需要比较几件事来返回正确的值,是否允许在WHERE之后使用if?有没有人有一个正确使用的工作示例非常方便

我可以看出您正在使用PHP,那么为什么您没有这样做:

if(isset($Phone)){
"SELECT * FROM TABLE WHERE number LIKE '%$Phone%'";
}else{
"SELECT * FROM TABLE WHERE number LIKE '%Mobile%'";
}

我可以看出您使用的是PHP,那么为什么不制作以下内容:

if(isset($Phone)){
"SELECT * FROM TABLE WHERE number LIKE '%$Phone%'";
}else{
"SELECT * FROM TABLE WHERE number LIKE '%Mobile%'";
}
选中此项:

SELECT * , IF('$phone' = '$novalue','%$mobile%','%$phone%') as comparevalue    
FROM TABLE GROUP BY Id_column HAVING number LIKE comparevalue
选中此项:

SELECT * , IF('$phone' = '$novalue','%$mobile%','%$phone%') as comparevalue    
FROM TABLE GROUP BY Id_column HAVING number LIKE comparevalue

因为在实际的表达式中有太多的变量,在PHP中这样做会太麻烦,太长。仔细检查一下,你可以在PHP中添加查询的一部分,我认为在MySQL中会太长。类似于
$query=“从表中选择*,其中的数字类似于“%Mobile%”;if(isset($Phone)){$query.=”和类似“%$Phone%”的数字;}if(isset($var2){$query.=”和类似“%$var2%”的数字;}…if(isset($varn){$query.=”和类似“%$varn%”的数字;}
因为实际表达式中有太多变量,在PHP中这样做会太麻烦,太长。尝试检查一下,你可以在PHP中添加查询部分,我认为在MySQL中也会太长。类似于
$query=“SELECT*FROM TABLE WHERE number like“%Mobile%”的if(isset($Phone)){$query.=”和类似“%$Phone%”的数字;}if(isset($var2){$query.=”和类似“%$var2%”的数字;}…if(isset($varn){$query.=”和类似“%$varn%”的数字;}