gpt4 book ai didi

php - SQL命令计算百分比

转载 作者:行者123 更新时间:2023-11-29 11:09:37 29 4
gpt4 key购买 nike

我正在尝试重构我的代码。我返回所有行,并使用 php 过滤结果集,但这很快就成为一个性能问题。

当前代码:

$percentOff = 80;

$stmt = $this->dbh->prepare("SELECT * FROM products WHERE Available=1 AND Merchant='Amazon'"); //Selects all from DB. VERY slow

$finalResults = array();
//Limit the results returned
foreach($rows as $row){
$totalSavings = ($row["LowestNewPrice"] - $row["LowestUsedPrice"]) / $row["LowestNewPrice"] * 100;
if($totalSavings >= $percentOff){
$finalResults[] = $row;
}
}

重构 SQL:

$stmt = $this->dbh->prepare("SELECT * FROM products WHERE Available=1 AND Merchant='Amazon' AND (LowestNewPrice - LowestUsedPrice / LowestNewPrice * 100) >= ?");
$stmt->bindValue(1, $percentOff, PDO::PARAM_STR);

这会返回产品中的所有内容。我只想返回 >= 80 的结果。我哪里出错了?

数据库

| LowestNewPrice           | int(11)      | NO   |     | NULL                |       |
| LowestUsedPrice | int(11) | NO | | NULL | |

最佳答案

  1. LowestNewPrice - LowestUsedPrice 两边缺少括号
  2. 正如 Luke 提到的,您也可能会遇到整数除法。 在除法之前乘以 100。

关于php - SQL命令计算百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40826860/

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