liuonestar
liuonestar
采纳率16.7%
2017-03-23 09:15 阅读 970

mysql分页的sql语句报错,求解??

String sql = "select s.* from user s where s.id limit ((?-1)*?),?";

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 '((1-1)*1),1' at line 1

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    jack_shaoyu 苦乐斋主 2017-03-23 09:48

    limit后面不能用运算符,可以先在程序中计算好在代入到sql语句中

    点赞 1 评论 复制链接分享
  • jack_shaoyu 苦乐斋主 2017-03-23 09:38

    ((1-1)*1),1 ; 貌似是这个的写法问题,直接写0就没错

    点赞 1 评论 复制链接分享
  • qq_18563467 论时间煮雨 2017-03-23 10:31

    ((?-1)*?),?非常同意楼上的说法,可能是你的通配符使用有误

    点赞 1 评论 复制链接分享
  • HackAge4619 写给初学者的几封信 2017-03-23 09:22

    这是一个语法错误,拿到数据库sql窗口里能检测出错在哪(错的地方会出现红线)

    点赞 评论 复制链接分享
  • txl690956710 txl690956710 2017-03-23 09:39

    我目前从sql语句中看出的错误是 你用到了别名s 但并没有给s指定它是哪张表的别名

    所以你需要改为这样试试
    select s.* from user 表名 as s where s.id limit ((?-1)*?),?
    或者
    select s.* from user 表名 s where s.id limit ((?-1)*?),?

    我不知道你使用的是什么数据库,但第一种肯定是支持的

    点赞 评论 复制链接分享

相关推荐