首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 6中select distinct的总分页错误

在Laravel 6中,使用select distinct进行查询时可能会遇到总分页错误。这个错误是由于Laravel 6的Paginator类在处理distinct查询时的总记录数计算上存在问题导致的。

解决这个错误的方法是使用自定义的Paginator类来替代Laravel 6自带的Paginator类。下面是解决方法的步骤:

  1. 创建一个新的Paginator类,可以命名为CustomPaginator,并继承自Laravel 6的Paginator类。
  2. 在CustomPaginator类中重写count方法,该方法用于计算总记录数。在重写的count方法中,使用distinct查询的结果集进行计数,而不是使用原始的查询构造器。
  3. 在CustomPaginator类中重写getTotal方法,该方法用于获取总记录数。在重写的getTotal方法中,直接返回重写的count方法计算得到的总记录数。
  4. 在使用Paginator类进行分页的地方,将Laravel 6的Paginator类替换为自定义的CustomPaginator类。

通过以上步骤,我们可以解决Laravel 6中select distinct的总分页错误。这样可以确保在使用select distinct进行查询时,分页功能能够正常工作。

推荐的腾讯云相关产品是腾讯云数据库(TencentDB),它是一种高性能、可扩展的云数据库解决方案。腾讯云数据库支持多种数据库引擎,包括MySQL、SQL Server、PostgreSQL等,可以满足各种应用场景的需求。您可以通过以下链接了解更多关于腾讯云数据库的信息:https://cloud.tencent.com/product/cdb

请注意,以上解决方法和推荐产品仅适用于Laravel 6中select distinct的总分页错误的情况,具体解决方法和推荐产品可能因实际情况而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

编程思想之--闹心的分页,去重问题

我一开始也想到了减掉总记录数,但是减去总记录数后会影响后面的分页计算,从而得到错误的结果。于是我想到了修改sql。一开始我的sql是: 分页获取审核记录--> select t.ID, a.HANDLE_STATUS, t.DOCUMENT_NUMBER...,这样就成功的减掉了总数;然而在做分页去重时却遇到了难度,因为DISTINCT只能写在最前面,后面的所有的列都相同才去重,所以就无法将分页的审核记录合并为一条,于是我突发奇想的先查询到真实的记录,组建成临时表...--统计总数--> select count(DISTINCT t.ID) from Assets_Transfer_Audit a inner join Assets_Transfer_Apply...--分页获取审核记录--> select * from( select t.ID, a.HANDLE_STATUS, a.LINK_STATUS

76710
  • 【MySQL数据库】 数据库的基本查询 DQL

    ​图片目录数据库的基本查询 DQL简单查询聚合查询分组查询排序查询分页查询数据库的基本查询 DQL简单查询--查询所有的商品 select * from 表名;-...列名 as 别名 from 表名;--去掉重复值(distinct) select distinct 列名 from 表名;--查询结果是表达式(运算查询)...--查询商品的总条数 select count(*) from product;--查询价格大于200商品的总条数 select count(*) from...LIMIT子句除外 分页查询 分页查询在项目开发中常见,由于数据量很大,显示屏长度有限,因此对数据需要采取分页显示方式。...-- 方式1-显示前n条 select 字段1,字段2... from 表明 limit n -- 方式2-分页显示 select 字段1,字段2... from 表明 limit m,n m: 整数,

    6.2K41

    ASP.NET MVC5+EF6+EasyUI 后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

    不用存储过程,跟踪EF生成的LINQ成果是理想了,在Easyui下的分页显示也是2秒左右,如图的分页 在这里我只能把数据量加大到一千万,在EF中,我们可能无必要用存储过程来做列表的显示,因为生成的查询语句是非常理想的...现在数据已经到达300W+了,查询分页的时间小于4秒 当数据达到六百万条记录的时候事件已经在6秒左右了,可能我的服务器处理能力有限。...效果却是一样的,有兴趣的可以了解一下这个分页存储过程 USE [AppDB] GO /****** Object: StoredProcedure [dbo]....Create table #CountTable ( Id varchar(50) ) exec('insert into #CountTable select distinct b.Id from...b.Id from( select distinct b.Id,row_number() over (order by b.CreateTime desc) as [row_number] from

    1.3K100

    【数据库】MySQL:从基础到高级的SQL技巧

    (六)使用DISTINCT去重查询 如果一个字段中存在重复值,DISTINCT 可以用来查询唯一值,去除重复记录。...语法: SELECT DISTINCT 字段名 FROM 表名; 示例: SELECT DISTINCT city FROM users; 此查询将返回 users 表中唯一的城市名称。...BY total_salary DESC; 功能: 按 department 分组,计算每个部门的总薪资,并按总薪资从高到低排序。...四、分页查询 分页查询用于从大数据集中按页获取指定数量的记录,这对于处理大量数据时非常常见,尤其是在网页或应用程序中显示多页数据时。分页查询主要通过 LIMIT 子句来实现。...确保 ON 条件中的列有适当的匹配,以避免查询返回错误的数据集或产生过多的空值(NULL)。 在编写复杂连接查询时,应尽量简化表之间的关系,避免产生不必要的笛卡尔积。

    14110

    软件测试最常用的 SQL 命令 | 掌握基本查询、条件查询、聚合查询

    b desc* 分页:select * from table_name order limit 10 offset 0* 去重:select distinct fileds from table_name2.2...by dept_no desc;分页-将departments表按部门序号进行从小到大排序后取前4个select * from departments order by dept_no limit 4...;再取偏移量offset为3后的前4个select * from departments order by dept_no limit 4 offset 3;去重-现在想知道titles表中的岗位头衔有多少种...,就需要对title进行去重处理select distinct title from titles;3、其他SQL条件查询Where基本条件查询在上述已经说明:select * from table_name...) from salaries group by emp_no;HAVING-现在接着上一步,取员工总薪资大于1000000的员工select emp_no,sum(salary) from salaries

    1.3K41

    MySQL 高效查询的实践指南:SQL语句优化篇

    正例: -- 正确:统计所有行 SELECT COUNT(*) FROM orders; -- 错误:只统计 `customer_id` 非 NULL 的行 SELECT COUNT(customer_id...理解 count(distinct col) 的行为 【强制】 count(distinct col) 计算该列除 NULL 之外的不重复行数。...正例: -- 统计 `customer_id` 的不重复值(排除 NULL) SELECT COUNT(DISTINCT customer_id) FROM orders; 示例: 如果你需要计算唯一客户的数量...分页查询中的优化 【强制】 编写分页查询逻辑时,如果 count 为 0,应直接返回,避免执行后续的分页语句。 说明:当查询结果为空时,进行分页操作是没有意义的,可以通过早期退出来提高性能。...status = 'shipped' LIMIT 0, 10; END IF; 示例: 在实现分页查询时,首先查询总记录数。

    19810

    软件测试最常用的 SQL 命令 | 掌握基本查询、条件查询、聚合查询

    by b desc* 分页:select * from table_name order limit 10 offset 0* 去重:select distinct fileds from table_name...by dept_no desc;复制分页-将departments表按部门序号进行从小到大排序后取前4个select * from departments order by dept_no limit...4;再取偏移量offset为3后的前4个select * from departments order by dept_no limit 4 offset 3;复制去重-现在想知道titles表中的岗位头衔有多少种...,就需要对title进行去重处理select distinct title from titles;复制3、其他SQL条件查询Where基本条件查询在上述已经说明:select * from table_name...) from salaries group by emp_no;复制HAVING-现在接着上一步,取员工总薪资大于1000000的员工select emp_no,sum(salary) from salaries

    95620

    Laravel-博客实战+踩坑laravel-blog最终的效果踩的坑

    最近在学习Laravel,参考的课程是后盾网地Laravel5.2博客项目实战 下面整个项目的开发过程: laravel-blog 基于laravel5.2的博客 day1(7月31): 后台模板引入...文章分页列表 文章编辑 文章删除 day4(8月03): 数据库迁移以及数据填充 友情链接增删改查 自定义导航 前台文章首页、列表页、文章模板 前台模板数据共享 day5(8月04) 配置项模块的创建...管理页面.png ---- 踩的坑 关于session Laravel采用了另一套session机制,默认情况下session没有被打开,而有些情况下,我们引入的类需要开启session。...image.png return->back()->with() return back()->with('msg','验证码错误');重定向至前一个页面,但传入的值用session('msg')...无法取到 项目路由配置时,所有路由是配置在一个总的路由分组中,对这个分组添加了web中间件。

    2.5K50

    SQL从入门到入魔之select简单查询

    SQL语句和大小写 SQL语句不区分大小写,SELECT与select是相同的。同样,写成Select也没有关系。...#4.查询不同的行(distinct去重):查询学生表所有学生的年龄 select distinct age from stu ; ? 使用DISTINCT关键字,它必须直接放在列名的前面。...不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列,除非指定的两个列都不同,否则所有行都将被检索出来。...#5.1 限制结果(limit分页):查询学生表前4行的学生ID select id from stu limit 4; ?...带一个值的LIMIT总是从第一行开始,给出的数为总的行数。带两个值的LIMIT可以指定从行号为第一个值的位置开始。 行0开始 检索出来的第一行为行0而不是行1。

    1.7K70

    【MySQL】007-记录的查询

    一、基础查询 1、多个字段的查询 select 字段1,字段2...字段n from 表名; -- 如果要查询所有字段,可以用*代替 2、去除重复 select distinct 字段1 from 表名...; -- 完全一样的查询结果才能去重 3、计算列 select distinct 字段1,字段2,字段3 字段1+字段2+字段3 from 表名; -- 计算字段1、2、3之和 -- 如果null参与的计算...,结果都是null,若为null,则为0可以这样写: select distinct 字段1,字段2,字段3 字段1+字段2+ifnull(字段3,0) from 表名; 4、起别名 select distinct...student WHERE english = NULL; -- 错误写法 SELECT * FROM student WHERE english IS NULL; -- 正确写法 -- 查询英语成绩不为...- 1) * 每页显示的条数; 3、公式 公式:开始的索引= (当前的页码 - 1) * 每页显示的条数; 4、limit分页操作是MySQL的一个“方言”,不同数据库实现分页的方式不一样;

    7710

    MySQL【知识改变命运】06

    前言:在05这节数据结构里面,我们知道select * from 这个操作很危险,如果数据库很大,会把服务器资源耗尽,接下来提到的查询可以有效的限制返回记录 1:分页查询 分页查询可以有效控制一次查询出来的结果集的记录条数...,会返回空结果集 limit start,num; num offset start; 这两条语句表达效果一样 用页数查找 这里数据我们一共有 9条 页数=总页数/每页条数,如果有余数则...DISTINCT进⾏去重操作,会严重效率。...将去重的数据放入新表中: 7:聚合函数 7.1:语法 COUNT([DISTINCT] expr) 返回查询到的数据的 数量 SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义...AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义 MAX([DISTINCT] expr) 返回查询到的数据的 最⼤值,不是数字没有意义 MIN([DISTINCT

    5910

    通过 Laravel 查询构建器实现复杂的查询语句

    查询小技巧 我们首先来介绍几个 Laravel 自带的语法糖,可以帮助我们快速获取期望的查询结果,提高编码效率。...有时候,我们想要获取的并不是一行或几行记录,而是某个字段的值,你当然你可以查询到一行记录后从结果对象中获取指定字段的值,但是 Laravel 为我们提供了更便捷的语法: $name = '学院君'; $...SQL 语句是: select user_id, sum(views) as total_views from `posts` group by `user_id`; 用于从 user_id 维度统计每个用户发布文章的总浏览数...如果我们想要进一步对分组结果进行过滤,可以使用 having 方法,比如,要从上述分组结果中过滤出总浏览数大于等于 10 的记录,可以这么做: $posts = DB::table('posts')...分页 日常开发中,另一个常见的查询场景就是分页查询了,在查询构建器中提供了两种方式来进行分页查询。

    30.2K20

    3分钟短文 | Laravel 内3种数据校验的写法,你喜欢哪一个?

    引言 web应用程序公开访问几乎没有不带用户交互的,难免要接收用户输入的奇奇怪怪的东西。对于后端程序,必须对输入的内容进行有效性过滤。 ? 这就是本文的重点,说一说laravel中输入请求的校验。..., "names.*" => "required|string|distinct|min:3", ]); 其中 Validator 是laravel门面内注册的校验类。...接着使用星号匹配数组内元素,要求都是string字符串,且不得重复 distinct,且每个字符串长度最小为3。...laravel 5.5 以后的版本,你无需手动实例化 Validaor 对象,可以在 Request 对象直接调用 validate 方法实现。....*" => "required|string|distinct|min:3", ]); 上面两种方式校验之后,都可以使用 $validator->fails() 方法判断是否通过,如果 true 就是有错误

    1.3K20

    mybatis-plus一对多关联查询踩坑

    环境 1.sql server 数据库 2.使用mybatis-plus分页插件 需求 有两种表分别是电脑表、电脑配套表。两张表的关系是一对多。表数据如下: ?...但是mapper里面明明已经配置了distinct为什么还会重复呢? 因为使用了mybatis-plus分页插件,所以实际查询语句是被起包装过的,具体,通过控制台可以找到实际sql执行语句。...也可以看到源码中select distinct要是不只间隔一个空格,它还识别不出来。经过尝试多个空格还是导致报错。到此,基本锅已定。我这个版本是3.0.3。github上最新的是3.4.0。...实际尝试还是会存在同样的问题。 我暂时没想通为啥作者要先处理 select 或者select distinct,而不是直接把原始sql整段保留,然后在拼接ROW_NUMBER函数进行分页处理。...解决 1.等待作者处理 2.手动分页 3.子查询的方式,避免连表查询 最终处理方案3,修改mapper代码如下: <mapper namespace="com.xxxx.xxxx.business.dao.ComputerDao

    5.8K10
    领券