【发布时间】:2019-09-23 05:53:33
【问题描述】:
当我手动运行以下 SQL 时,我得到了没有错误的预期结果
select * from `crawl_results`
where `user_id` = 1 and `website_id` = 1
and `item_state` != 'OK' group by `destination_url`
limit 30 offset 0
但是当我在 Eloquent 中运行它时...
self::where('user_id', Auth::id())
->where('website_id', $scanID)
->where('item_state', '!=' , 'OK')
->groupby('destination_url')->paginate(30)
它会产生这个错误:
SQLSTATE[42000]:语法错误或访问冲突:1055 'link_checker.crawl_results.id' 不在 GROUP BY 中(SQL: select * from
crawl_results其中user_id= 1 和website_id= 1 和item_state!= OK group bydestination_urllimit 30 offset 0)
不确定抽象背后发生了什么导致该错误?
【问题讨论】:
-
您能否记录从您的 eloquent 查询中生成的原始查询?
-
我相信原始查询在它抛出的错误中?
-
您可以直接在您的 phpmyadmin 中运行查询,然后如果您收到错误,将表前缀添加到按列名分组并告诉我结果吗?
标签: php laravel laravel-5 eloquent laravel-query-builder