关于groupBy与select方法冲突问题

来源:3-10 数据库操作-增删改

嗣音Bodhi

2021-05-14

老师,我在做项目的时候碰到一个问题,在同时使用了select指定多个查询字段后,又使用了groupBy其中的一个字段,出现了如果跟select第一个元素不一致报错的情况,报错如下:
{“error”:“SQLSTATE[42000]: Syntax error or access violation: 1055 ‘yjhx.bbc_goods.goods_name’ isn’t in GROUP BY (SQL: select goods_commonid, goods_name, gid, vid, goods_price, goods_image, store_name, goods_marketprice, gc_id from bbc_goods where (goods_state = 1 and goods_verify = 1) group by goods_commonid order by gid desc limit 15 offset 0)”}
经过学习,得知是由于数据库配置文件中开启了严格模式导致的,想请教一下在不关闭严格模式的情况下,如何在select中指定多字段后,依旧能够groupBy?谢谢老师!

写回答

1回答

檀梵

2021-05-16

select的列都要在group中,或者是聚合列。sql拆分下,先查groupby,在根据id查询一次

1
2
檀梵
回复
嗣音Bodhi
一般不会,我们更推荐小而简单的sql,多查询一两次有索引的情况下很快
2021-05-17
共2条回复

Laravel重构企业级电商项目 从根源解决重构难题

一门专注于提升大型复杂项目重构能力的课程

423 学习 · 149 问题

查看课程