为了账号安全,请及时绑定邮箱和手机立即绑定
关注
qq_精慕门2233203

根据条件索引出问题(如图跟视频里面一字不差结果报错)

http://img3.sycdn.imooc.com/5e8c11b80001952d10680076.jpg

第一个 我跟着视频一模一样打印报错 永远报错 好像select只能选择一个 其他表全选都没事,我一更改选择顺序马上就好了。为什么

因为视频录制老师不够严谨 没有考虑到这些小问题

http://img1.sycdn.imooc.com/5e8c11b800011cff09850497.jpg


2020-04-07 520 浏览 3 回答

select列要包含在group by中,或者聚合函数中。前者需要该配置,后者事例如下:

DELETE t1 FROM tdb_goods t1 INNER JOIN (
    SELECT MIN(goods_id) AS goods_id, goods_name FROM tdb_goods GROUP BY goods_name HAVING COUNT(goods_name) >= 2) t2 ON t1.goods_name = t2.goods_name 
WHERE t1.goods_id > t2.goods_id;


2020-04-13
回复 1

这个问题要改数据库配置的,group by的条件必须和查询结果顺序一致,也就是说你后边只可以写,group by id 或者 group by id,name ,否则的话会报语法错误。

你去网上搜一下err1055,应该有临时解决方法,也有永久解决方法

2020-04-07
回复 0

永久的解决办法:

1.原因:sql_mode的值中含有ONLY_FULL_GROUP_BY

http://img3.sycdn.imooc.com/5ef300ef00012b6609860135.jpg

2.解决:修改mysql的配置文件my.ini,或在my.ini中添加如下行(将ONLY_FULL_GROUP_BY删掉即可)

http://img1.sycdn.imooc.com/5ef3018a0001d88808680043.jpg

保存,重启即可。


2020-06-24
回复 0

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信