如题,我分页用到了LIMIT,但是现在条件查询需要近N条的记录又用到了LIMIT的,怎么解决啊。谢谢

解决方案 »

  1.   

    select * from (select * from table limit 10) oth_table limit 5
      

  2.   

    这个问题是limit的事?近N条记录是sql语句加多个order by timestamp Desc而已,与limit无关,即使每页显示记录数M中的M与最近N条记录中N不相等,你完全可以写点逻辑来修改limit$limit = $_CONFIGS['limit'];
    $offset = ( $page - 1 ) * $limit;
    if ( 最近N记录的操作 ) {
    $offset = 0;
    $limit = N;
    }
    $sql = "SELECT * FROM table ";
    $sql .= " WHERE condition";
    $sql .= " ORDER BY timestamp DESC";
    $sql .= " LIMIT $offset, $limit";
      

  3.   

    2楼你的方法不行,3楼的我没看特别明白!
    select  * from Syslogd  where $strString order by msgdatetime desc limit $firstcount,$displaypg  这个是我分页的SQL$strString是很多条件查询的,其中一个就是limit 0, $temp,近N行记录
      

  4.   

    一个语句2个limit,显示记录数,但是没显示数据,所以问是不是冲突呢
      

  5.   

    查询条件里面怎么会有 limit 呢?
    如果是子查询中的,须将子查询用括号括起来
      

  6.   

    select * from (select * from Syslogd where $strString order by msgdatetime desc) limit $firstcount,$displaypg;这样不行?
      

  7.   

    能不能输出一下您的sql语句然后贴上来看看
      

  8.   

    select * from Syslogd where msghostname = '192.168.100.252' limit 0, 18
      

  9.   

    上面不对,连翻页都算上是:select * from Syslogd where msghostname = '192.168.100.252' limit 0, 18 order by msgdatetime desc limit 0,10
      

  10.   

    select * from Syslogd where msghostname = '192.168.100.252' order by msgdatetime desc limit 0,10
      

  11.   

    select * from (select * from Syslogd where msghostname = '192.168.100.252' order by msgdatetime desc limit 0,18) a limit 0, 10