1. 在5.7版本以上mysql中使用group by语句进行分组时, 如果select的字段 , 不是完全对应的group by后面的字段 , 有其他字段 , 那么就会报这个错误
error 1055 (42000): expression #1 of select list is not in group by clause and contains nonaggregated column
2.这是因为高版本mysql添加了一个sql_mode
查看sql_mode
select @@sql_mode;
mysql> select @@sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| only_full_group_by,strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution |
+-------------------------------------------------------------------------------------------------------------------------------------------+
可以看到有一个only_full_group_by , 这个就是严格控制group by 和select 字段的 , 在不改变sql语句的前提下 , 把这个去掉就可以了
3.我的ubuntu系统下编辑的这个文件 /etc/mysql/conf.d/mysql.cnf , 其他系统找到对应的配置文件就可以了 ,在[mysqld]块下 ,把sql_mode配置上 , 并且去掉only_full_group_by
sql_mode='strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution'
4.此时就正常了
如对本文有疑问, 点击进行留言回复!!
2020 年百度之星·程序设计大赛 - 初赛三 P1005 Chess (HDU 6787) dp
Web篇(6.3) 13. 命令注入 ❀ FortiWeb 攻防演练
网友评论