繁体   English   中英

如何使用在mySQL数据库上工作的PHP脚本中的循环访问枢轴行(可以是任何行)之前和之后的行?

[英]How to access the rows before and after a pivot row (can be any row) using a loop in a PHP script working on a mySQL database?

以下代码使用php脚本中的“ for”循环查询数据库中枢轴行之前的每一行。 查询所有以下行的情况相同。 每次将新查询插入sql时,此代码均未优化。 有什么技术可以加快整个过程? mysql中是否有任何查询可以解决目的以及使用哪个查询可以绕过循环?

    while($speed < 3 && $found > 0)
    {
        $sub_query = "select * from sheet_17_43_2 where Generation = ". $found ."-1";
        $res = mysql_query($sub_query);

        if (!$res) 
        {
            echo "Could not successfully run query ($sql) from DB: " . mysql_error();
            exit;
        }

        if (mysql_num_rows($res) == 0) 
        {
                echo "No rows found, nothing to print so am exiting";
            exit;
        }
        $speed = mysql_fetch_assoc($res)["Speed"];
        mysql_free_result($res);
        $time++;
    }

要将列的当前值( col )与“上一个”值进行比较,请执行以下操作

SELECT  t.col - @prev AS change_from_prev,
        @prev := t.col
    FROM  
      ( SELECT  @prev := 0 ) initializer
    JOIN  t
    ORDER BY  ...

ORDER BY很重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM