加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL计数使用LIMIT时的总行数

发布时间:2020-12-12 16:43:57 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试创建一个简单的图像库,每页显示16个图像.我正在使用LIMIT 16在页面上显示正确的数量,但是如果有超过16行,我想在底部有链接,允许用户导航到下一页. 我知道我可以通过删除限制并简单地使用循环来显示前16个项目来实现所需的结果,但这将是低效的.显然,
我正在尝试创建一个简单的图像库,每页显示16个图像.我正在使用LIMIT 16在页面上显示正确的数量,但是如果有超过16行,我想在底部有链接,允许用户导航到下一页.

我知道我可以通过删除限制并简单地使用循环来显示前16个项目来实现所需的结果,但这将是低效的.显然,COUNTING行总是= 16.

$sql .= "posts p,images im,postimages pi WHERE
    i.active = 1 
    AND pi.post_id = p.id
    AND pi.image_id = im.image_id 
    ORDER BY created_at LIMIT 16";

任何人都可以提出更有效的方法吗?

谢谢

解决方法

除了要获取所有其他人提到的计数的单独查询之外,您还需要偏移给定页面的结果.
$sql .= "posts p,postimages pi WHERE
    i.active = 1 
    AND pi.post_id = p.id
    AND pi.image_id = im.image_id 
    ORDER BY created_at 
    LIMIT ". ($page - 1) * $pagesize .",". $pagesize;

关于SQL注入的正常警告将在这里应用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读