首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语法错误或访问冲突: 1055 'database.order.oid‘不在GROUP BY中

语法错误或访问冲突: 1055 'database.order.oid‘不在GROUP BY中
EN

Stack Overflow用户
提问于 2018-08-28 17:40:32
回答 2查看 42关注 0票数 0

下面是我的sql代码,它工作正常

代码语言:javascript
复制
SELECT oid, date(ordered_on) AS ord, count(date(ordered_on)) AS cnt
FROM order
GROUP BY ord DESC
LIMIT 10

但当我将其应用于幼体时,我无法评估结果。下面是laravel代码

代码语言:javascript
复制
DB::table('order')
            ->select(DB::raw('oid, date(ordered_on) as ord, count(date(ordered_on)) as cnt'))
            ->groupBy('ord')
            ->orderBy('oid', 'desc')
            ->limit(10)
            ->get();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-28 17:45:10

您的原始MySQL查询在理想情况下不应该工作,因为它没有多大意义。我感觉你想做的是按日期统计记录。如果是这样,那么您需要这个查询:

代码语言:javascript
复制
SELECT DATE(ordered_on), COUNT(*) AS cnt
FROM `order`
GROUP BY DATE(ordered_on);

这将意味着以下Laravel代码:

代码语言:javascript
复制
DB::table('order')
    ->select(DB::raw('DATE(ordered_on) AS ord, COUNT(*) AS cnt'))
        ->groupBy('ord')
        ->orderBy('ord', 'desc')
        ->limit(10)
        ->get();

顺便说一句,不要使用保留的MySQL关键字(如order )命名表、列等。我需要在我的查询中转义order,而您也需要不断地进行同样的操作。

票数 2
EN

Stack Overflow用户

发布于 2018-08-28 17:43:34

您在laravel中使用的是严格模式。你可以根据你的需要来调整它。

在set strict=>false中找到config/database.php,你就可以开始了。

代码语言:javascript
复制
  'mysql' => [
          // ....

            'strict' => false
        ],
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52054732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档