开发者社区> 问答> 正文

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

展开
收起
爱吃鱼的程序员 2020-08-21 15:24:24 798 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

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

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

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

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

    所以你需要改为这样试试
    selects.*fromuser表名asswheres.idlimit((?-1)*?),?
    或者
    selects.*fromuser表名swheres.idlimit((?-1)*?),?

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

    2020-08-21 15:24:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像