请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于groupBy与select方法冲突问题

老师,我在做项目的时候碰到一个问题,在同时使用了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回答

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

1 回复 有任何疑惑可以回复我~
  • 提问者 嗣音Bodhi #1
    老师,那这种情况下,一句sql拆为两句,是否会影响性能?如果存在高并发的情况下是否还能用这样的方案呢?是否会拖慢整个功能的速度?
    回复 有任何疑惑可以回复我~ 2021-05-17 15:25:38
  • 檀梵 回复 提问者 嗣音Bodhi #2
    一般不会,我们更推荐小而简单的sql,多查询一两次有索引的情况下很快
    回复 有任何疑惑可以回复我~ 2021-05-17 15:44:50
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号