为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
青春有我 2023-09-15 21:36:43
这是可行的,但是有没有更短(更有效)的方法来做到这一点?代码比较 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;
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

您可以将两个查询合并为一个查询,从而避免往返数据库服务器。


借助 SQL 变量为 order by 后的 7 行中的每一行分配排名。现在,sum()通过过滤排名为 或1的行来过滤所有值7。如果rank = 1,则添加其负状态。


附带说明一下,如果$thiscoin来自用户,您可以更好地进行参数化查询,以避免使用PDO.


询问:


select sum(if(rank = 1,-mcr,mcr)) as diff_mcr

from (

    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

) derived

where rank = 1 or rank = 7

代码:


这只是


$rankdiff = mysqli_fetch_row(mysqli_query($conn, $sql))[0];


查看完整回答
反对 回复 2023-09-15
  • 1 回答
  • 0 关注
  • 55 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信