laravel 去重问题

发布于 2022-09-06 15:11:47 字数 677 浏览 19 评论 0

$coupon->whereIn('id',$res1['coupon_id'])->where('status',2)->get();

//怎么根据merchant_id 来去重

我尝试了

$coupon->whereIn('id',$res1['coupon_id'])->where('status',2)->groupBy('merchant_id')->get();

结果是
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'run.pq_coupon.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select * from pq_coupon where pq_coupon.deleted_at is null group by merchant_id)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

内心荒芜 2022-09-13 15:11:47

编辑 config/database.php 第53行 strict的值改成false,我的是5.5的在53行,你看下你的在第几行,['connections']['mysql']['strict'], 路径是这样的

浪漫之都 2022-09-13 15:11:47

如果groupBy不行的话, distict 又该如何书写代码?

我为君王 2022-09-13 15:11:47

use DB;

$coupon->select(DB::Raw('DISTINCT(merchant_id)')->whereIn('id',$res1['coupon_id'])->->where('status',2)->get();

乱世争霸 2022-09-13 15:11:47

groupby放在get后面

·深蓝 2022-09-13 15:11:47

这个提示不是说了吗?
你的数据库mode有 only_full_group_by 这个就要求你不能用select * 了。
你试试修改数据库的mode
先 select @@sql_mode;
然后把 only_full_group_by 删掉;
如果你不能删的话,就按阿泽说的方法做。

旧街凉风 2022-09-13 15:11:47

审题

题注的需求描述的不是特别清楚,所以根据现有的信息我来完整描述下题主的需求。

题主的表: pq_coupon table , 有几个核心字段 id,status,merchant_id

题主尝试的查询写法:

$coupon->whereIn('id',$res1['coupon_id'])->where('status',2)->groupBy('merchant_id')->get();

$coupon->whereIn('id',$res1['coupon_id'])->where('status',2) 会找出一批优惠券数据,但是其中 merchant_id 存在很多重复的值。

所以题主想 每个店铺下(merchant_id) 只找出一条优惠券即可。

不知道是否理解正确,正确了再说解题方法。

久夏青 2022-09-13 15:11:47

找到 config/database.php 文件中的 connections -> mysql ;
strict 改为 false ;

具体可以参考 最适合入门的Laravel初级教程(六)

如果你想 知其所以然 ;
我给你个关键字 only_full_group_by ;
百之谷之必应之;
搜索一遍你就懂了;

眼波传意 2022-09-13 15:11:47

楼主可以这样去重, Goods::get()->groupBy('userid');

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文