有没有更有效的方法来比较从数据库获得的两个变量?

这是可行的,但是有没有更短(更有效)的方法来做到这一点?代码比较 2 个数字。一条是从最近的记录开始,另一条是从 7 条记录开始。


$sql5="SELECT market_cap_rank FROM intelligence WHERE id='$thiscoin' order by day desc limit 0,1";

$row5 =  mysqli_fetch_row(mysqli_query($conn, $sql5));

$newest = $row5[0];

$sql6="SELECT market_cap_rank FROM intelligence WHERE id='$thiscoin' order by day desc limit 6,1"; 

$row6 =  mysqli_fetch_row(mysqli_query($conn, $sql6));

$oldest = $row6[0];

$rankdiff=$oldest-$newest;


青春有我
浏览 81回答 1
1回答

慕森卡

您可以将两个查询合并为一个查询,从而避免往返数据库服务器。借助 SQL 变量为 order by 后的 7 行中的每一行分配排名。现在,sum()通过过滤排名为 或1的行来过滤所有值7。如果rank = 1,则添加其负状态。附带说明一下,如果$thiscoin来自用户,您可以更好地进行参数化查询,以避免使用PDO.询问:select sum(if(rank = 1,-mcr,mcr)) as diff_mcrfrom (    SELECT  @rank := @rank + 1 as rank,market_cap_rank as mcr    FROM intelligence,(select @rank := 0) r      WHERE id = '$thiscoin'     order by day desc limit 0,7) derivedwhere rank = 1 or rank = 7代码:这只是$rankdiff = mysqli_fetch_row(mysqli_query($conn, $sql))[0];
打开App,查看更多内容
随时随地看视频慕课网APP