当前位置: 首页 > 知识库问答 >
问题:

Laravel:在视图上分页查询MySQL错误1140组列混合

穆鸿卓
2023-03-14

我试图对使用视图的查询进行简单的分页:

DB::table('vw_myview')->paginate(50)

并得到以下错误:

mysql> select count(*) as aggregate from vw_myview;
+-----------+
| aggregate |
+-----------+
|       776 |
+-----------+
1 row in set (0.20 sec)
DB::table('vw_myview')->groupBy('column_on_view')->paginate(50)

好的,让我们尝试按视图使用的一个表上的列进行分组:

DB::table('vw_myview')->groupBy('table_used_by_view.column_on_table')->paginate(50)

SQLSTATE[42S22]:未找到列:1054“group语句”中的未知列“database_name.table_used_by_view.column_on_table”(SQL:从vw_myview group by database_name.table_used_by_view.column_on_table中选择count(*)作为聚合)

那么,为什么当我手动运行查询时它工作,而当通过ELOQUENT运行时却失败了呢?任何帮助都将不胜感激。

共有1个答案

施知
2023-03-14

你知道,我想你的Mysql服务器已经打开了sql_mode=ONLY_FULL_GROUP_BY...你能检查一下这个吗...(从mysql...选择@@sql_mode;如果设置了它,请关闭它...然后再试一次查询...我想它会通过...mysql 5.7xxx现在默认情况下打开了它...

 类似资料:
  • 问题内容: 您好,想知道是否有人可以阐明以下错误。该SQL在本地工作正常,但我远程得到以下错误。 SQL查询: MySQL说: #1140-如果没有GROUP BY子句,则将GROUP列(MIN(),MAX(),COUNT(),…)与GROUP列混合使用是非法的 问题答案: 使用聚合函数的单列起作用而使用不使用聚合函数的列不起作用的原因是因为您需要指定一个子句。这是您的查询应类似于的样子: 我将表

  • 在处理Laravel时,我们会这样做: 如何查看生成的sql查询?这对于开发过程中的调试非常重要。 谢谢你。

  • 主要内容:GROUP BY单独使用,GROUP BY 与 GROUP_CONCAT() ,GROUP BY 与聚合函数,GROUP BY 与 WITH ROLLUP在 MySQL 中, GROUP BY 关键字可以根据一个或多个字段对查询结果进行分组。 使用 GROUP BY 关键字的语法格式如下: GROUP BY  <字段名> 其中,“字段名”表示需要分组的字段名称,多个字段时用逗号隔开。 GROUP BY单独使用 单独使用 GROUP BY 关键字时,查询结果会只显示每个分组的第一条记录。

  • 我有两种型号: 用户 用户有很多帖子。帖子有很多评论,评论属于帖子。这很简单。 现在我想加载所有的帖子的认证用户与它的评论,如果帖子有评论今天创建。如果帖子今天没有评论,它将不会被加载。这些帖子也将被分页。如何建立查询在laravel雄辩? 我试过这样的方法:

  • 问题内容: 我有这个 MySQL 查询 得到这个错误: 我的表架构如下: 而且我不明白错误是从哪里来的。有任何想法吗? 问题答案: 如手册中所述: 以前,逗号运算符()和都具有相同的优先级,因此join表达式被解释为。现在具有更高的优先级,因此该表达式被解释为。此更改会影响使用子句的语句,因为该子句只能引用联接操作数中的列,并且优先级的更改会更改对这些操作数的解释。 例子: 以前,由于as的隐式分

  • 问题内容: Laravel 4.2 可以选择指定自定义视图,例如: 至少在 Laravel 5 中消失了。 有没有办法在 Laravel 5中 复制此行为? 问题答案: 而在 Laravel 4.2中, 我将使用: 在 Laravel 5中, 您可以复制以下内容: 现在,在包括视图,将有可用的分页方法,如,,,等。 您可以在http://laravel.com/docs/5.0/paginatio