linux中为啥不能用select * .... group by .....

看的资料格式都是select后面必须跟着和group by后一样的column_value,但是看到有这种非标准语法,而且在windows中可以使用,linux中为啥不能使用,能别的语句能替代吗?

mysql从5.7以后,默认开启group by的严格模式。如果错误号是1055,处理方式可以2种,
1)更改my.cnf(windows下是my.ini)中的sql_mode参数,去掉:only_full_group_by。
2)修改SQL语句,查询的列和group by的列,需要一致(主键可以忽略、用了函数的列可以忽略)

更改my.cnf(windows下是my.ini)中的sql_mode参数,去掉:only_full_group_by。

group by 分组后,你分组的列必须要在select 后面,并且没有被分组的列不能在select后面,但后select后面可以接聚合函数 count(*)等, 举个例子:

select a,b from A group by a ;这个对 a分组,所有查询到a每一行都是唯一的,但是a相同的情况下,b可能会有多个,这个a只有一条记录,但是b有多条记录,这个结果是没法显示的, 所有只能写成 select a,b from A group by a,b;或者 select a,count(b) from A group by a;

希望能帮到你

windows下可以吗,为啥我的会提示,“”* 不是group by 表达式“” 这是语法错误吧