2

尽管我已经阅读了资源,但我对 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 ?有没有人有正确使用的工作示例会非常方便

4

2 回答 2

0

我可以看到你正在使用 PHP,所以你为什么不做类似的东西:

if(isset($Phone)){
"SELECT * FROM TABLE WHERE number LIKE '%$Phone%'";
}else{
"SELECT * FROM TABLE WHERE number LIKE '%Mobile%'";
}
于 2012-05-26T00:26:45.397 回答
0

检查这个:

SELECT * , IF('$phone' = '$novalue','%$mobile%','%$phone%') as comparevalue    
FROM TABLE GROUP BY Id_column HAVING number LIKE comparevalue
于 2012-05-26T00:34:38.487 回答