rs = state.executeQuery("select limit " + (pageNo * 5 - 5) + " 5 * from bean");报错
java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 0 5 * from bean' at line 1

解决方案 »

  1.   

    ("select limit " + (pageNo * 5 - 5) + " 5 * from bean"); 
    你带一个固定值看在查询分析器里是否执行
      

  2.   

    肯定报错了 select limit 0 5 * from bean 中间的 0 5 mysql不知道你要干什么啊?要是取中间的数的话用between and 。
      

  3.   

    我试过勒,给固定值也报错
    解释:
    用来从(pageNo * 5 - 5)开始查询五个记录,这条sql语句是hsqldb数据库特有的分页语句。(pageNo * 5 - 5)用来计算pageNo这页第一条记录的行号,如果是第一页pageNo = 1,pageNo * 5 - 5 = 0。这里的行号跟咱们平常使用的数组索引一样,0代表第一个条记录,这样我们第一页就会显示0,1,2,3,4五条记录。如果是第二页pageNo = 2,pageNo * 5 - 5 = 5,我们就会在第二页看到5,6,7,8,9五条记录。这样正好与我们预期的一致。
      

  4.   

    mysql的limit用法
    1. select * from tablename <条件语句> limit 100,15从100条记录后开始取15条 (实际取取的是第101-115条数据)2. select * from tablename <条件语句> limit 100,-1从第100条后开始-最后一条的记录3. select * from tablename <条件语句> limit 15相当于limit 0,15   .查询结果取前15条数据 
      

  5.   

    select limit 0 5 * from bean 这样的语句能执行么?
      

  6.   

    ("select limit " + (pageNo * 5 - 5) + " 5 * from bean");    limit要在表名后的
    例如  select * from 表 limit 3   这是mysql
    select  top 3 * from 表   这是sqlserver
      

  7.   


    如果是access的话,要加个分组语句,要不然会从第30条记录开始查询,
    select  top 3 * from 表 group by 列,  这是access  ,是access数据库一定要加上group by 要不然记录从第30条记录开始查询,这个在无意中发现,刚开始我还以为自己代码有问题呢!跟大家分享一下经验
      

  8.   

    pageNo * 5 - 5值都是几呀,建议检查一下pageNo的值,0?1?都不对,这么写很有可能出错
      

  9.   

    rs = state.executeQuery("select * from bean limit " + (pageNo * 5 - 5) + " 5 "); 
    这样试一下
      

  10.   

    这肯定报错的。应该这样子写。
    rs = state.executeQuery("select * from bean limit " + (pageNo * 5 - 5) + ",5 ");
      

  11.   

    我就是 大概的给一下 那个限制肯定放后面 mysql 和oracle 还有sql得分页取数据是不一样的查一下就知道了