如何在mysql中选择下一个次要id

时间:2012-02-21 19:02:42

标签: php mysql select

这是调用ajax

的js脚本
var tempScrollTop, currentScrollTop = 0; 
$(document).scroll(function(){ 

currentScrollTop = $(document).scrollTop(); 

var ids = new Array();

if (tempScrollTop < currentScrollTop ) 
{
    var result = currentScrollTop % 100;
    if(result == 0 || (result > 20 && result < 30))
    {
        var items = $(".item");
        var items_l = items.length;
        for(var i = 0; i < items_l; i++)
        {
            ids[i] = parseInt(items[i].id.replace(/\D+/g,""));

        }
        ids = ids.sort();

        var last_id = ids[0];
        $.ajax({
          url: "ajax/load",
          type: "POST",
          data: {last_id : last_id},
          success: function(res){

          $("#content").append(res);

          }
        });
    }
}

这是控制器方法

public function ajaxLoad()
{
    $last_id = intval($this->input->post("last_id"));
    //$last_id++;
    $db_data['query'] = $this->db->query("SELECT * FROM items WHERE id < ".$last_id." LIMIT 1");
    $data['content'] = $this->load->view('item', $db_data, true);
    echo $data['content'];
}

所以目的是我想获取mysql中的id,该页面的当前次ID是次要的,例如如果页面中的次要ID是25,我想选择下一个N记录,但是如果我写的是从id&lt; current_id,数据库每次都选择第一行,因为它是所有数据库中最小的一行,但我需要NEXT minor,这怎么办?

我的意思是20是下一个小于25,但我不想选择15,在我得到20之前

假设我们在db:14,26,30,40 ......

中有这个ID

所以页面中的未成年人是30,我想选择下一个次要ID,它将是26,然后是14,这可以做到吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

$db_data['query'] = $this->db->query("SELECT * FROM items WHERE id < ".$last_id." ORDER BY id DESC LIMIT 1");

答案 1 :(得分:0)

看起来你只需要一个order by

SELECT * FROM items WHERE id < $last_id ORDER BY id DESC LIMIT 1

(我最初读错了,并认为你在寻找更高的数字)。