gpt4 book ai didi

php - 我如何在 mysql 中执行此三元运算?

转载 作者:可可西里 更新时间:2023-11-01 07:16:35 24 4
gpt4 key购买 nike

....
.....
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 检查,我认为这不是很有效,所以我正在寻找更好的查询/条件来重写同样的事情。

最佳答案

您可以在 MySQL 中使用 IF(condition, val-if-true, val-if-false)

您还可以嵌套 IF() 函数,如下所示:

IF(field1 IS NOT NULL, field1, IF(field2 <> 0, field2, field3))

这对应于:

  • 如果 field1 不为 NULL,则使用 field1,否则...
  • 如果 field2 不为零,则使用 field2,否则...
  • 使用字段 3

关于php - 我如何在 mysql 中执行此三元运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17482003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com