liuonestar
2017-03-23 09:15
采纳率: 16.7%
浏览 996

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条回答 默认 最新

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

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

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

    打赏 评论
  • 苦乐斋主 2017-03-23 09:38

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

    打赏 评论
  • 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)*?),?

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

    打赏 评论
  • 论时间煮雨 2017-03-23 10:31

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

    打赏 评论

相关推荐 更多相似问题