如何获得下一个最高记录但不是最高记录?

时间:2014-12-03 05:47:17

标签: mysql sql select max limit

这就是我现在所拥有的

需要发生的是,当查询运行时,它应该得到一个记录,其中id将等于下一个id,但如果记录不存在,它应该抓住下一个但是当我尝试运行下面的查询时它运行并得到最后一条记录是最高记录

说清楚:

数据库中的记录:

  • 1
  • 5
  • 6
  • 7
  • 8
  • 10

因此,如果查询检查记录2(不存在),它应该得到下一个最高值,即5而不是10,我将如何做?

        $query = "SELECT * FROM  images where images >= '$nextid'";
        $sql = mysqli_query($conn,$query) or die(mysqli_error($conn));  
        while($row = mysqli_fetch_array($sql)){

            $forwardid = $row['images_id'];
            $picname = $row['image_name'];

        }

5 个答案:

答案 0 :(得分:0)

试试这个

$query = "SELECT * FROM  images where images >= '$nextid' ORDER BY 
images_id ASC     LIMIT 0 , 1";

答案 1 :(得分:0)

试试这个:

SELECT * 
FROM images 
WHERE images_id >= 2 
ORDER BY images_id 
LIMIT 1;

答案 2 :(得分:0)

您可以添加另一个迭代,将您的资源转换为数组,并包含下一个ID

$result = mysql_query(" your query ");                
$recordset = array(); $i = 0;
while ($row = mysql_fetch_assoc($result))
{
    $recordset[$i] = $row;
    if ($i > 0) { $recordset[$i-1]['nextid'] = $row['id']; }
    $i++;
}

Get the next record

答案 3 :(得分:0)

你可以尝试以下。我认为它会对你有帮助。

select * from images where images_id=
(select Min(images_id) from images  where images_id>=2)

N.B:这里2是你给出的'images_id'

答案 4 :(得分:-1)

您可以使用此

SELECT MAX(records) FROM images WHERE records < (SELECT MAX(records) FROM images)

看看这个并跑步,让我知道你是否需要不同的东西。