课程
/数据库
/MySQL
/与MySQL的零距离接触
第一个 我跟着视频一模一样打印报错 永远报错 好像select只能选择一个 其他表全选都没事,我一更改选择顺序马上就好了。为什么
因为视频录制老师不够严谨 没有考虑到这些小问题
2020-04-07
源自:与MySQL的零距离接触 5-14
正在回答
永久的解决办法:
1.原因:sql_mode的值中含有ONLY_FULL_GROUP_BY
2.解决:修改mysql的配置文件my.ini,或在my.ini中添加如下行(将ONLY_FULL_GROUP_BY删掉即可)
保存,重启即可。
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;
这个问题要改数据库配置的,group by的条件必须和查询结果顺序一致,也就是说你后边只可以写,group by id 或者 group by id,name ,否则的话会报语法错误。
你去网上搜一下err1055,应该有临时解决方法,也有永久解决方法
举报
本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识