....
.....
if ($prod_price->RecordCount()>0) {
$p_price = $prod_price->fields['options_values_price'];
}
else
{
$p_price = $orders_products_query->fields['products_price'];
}
$p_price = ($p_price>0)?$p_price:$orders_products_query->fields['final_price'];
......
..........
正如您从上面可以猜到的,我正在运行两个不同的查询并检查 3 个字段以确定 PHP 中的变量 $p_price。我想在一个查询中压缩它,条件是:如果 field1 为 Null,使用 field2,如果 field2 为 0,使用 field 3。
第一部分可以用 IFNULL(field1,field2)....解决,但是第二部分我该怎么办?我应该使用案例吗?我需要在执行速度方面最有效的解决方案,因为这是一个非常大的查询的一部分。
编辑:
由于你们中的某些人似乎不清楚这个问题,因此请将此作为替代方案。
IF(IFNULL(field1,field2)>0,IFNULL(field1,field2),field3)
上面的 MySQL 查询条件与上面提到的逻辑一起工作,但是正如你所看到的,它对 field1 和 field2 进行两次评估以进行 NULL 检查,我认为这不是很有效,所以我正在寻找一个更好的查询/条件来重写同样的事情。