84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
select id, value from test;查询结果如下id valueyy 123zz 234zz 456
仅想保留id字段的第一条记录,在5.7以下版本中使用"select id, value from test group by id"即可得到如下结果:yy 123zz 234
但在MySQL 5.7中该如何得到所需结果呢?该语句在5.7中非法
认证高级PHP讲师
修改MySQL配置文件中的sql_mode,除去ONLY_FULL_GROUP_BY,如没有sql_mode,则加上一行
sql_model=
SELECT id, value FROM (SELECT id, value FROM test ORDER BY id ) AS b GROUP BY id
说句题外话:用惯PostgreSQL的我突然有一天开始用MySQL,发现类似楼主这种非key不用聚合的不严谨的SQL语句居然能成立,心中一万只草泥马奔腾。后来发现,在PostgreSQL用着跟家常便饭一样的窗口函数竟然MySQL根本没有,彻底无语。好吧,还是提供点有用的东西,在MySQL中实现rank的窗口函数:http://stackoverflow.com/questions/3333665/rank-function-in-mysql
修改MySQL配置文件中的sql_mode,除去ONLY_FULL_GROUP_BY,如没有sql_mode,则加上一行
SELECT id, value FROM (SELECT id, value FROM test ORDER BY id ) AS b GROUP BY id
说句题外话:
用惯PostgreSQL的我突然有一天开始用MySQL,发现类似楼主这种非key不用聚合的不严谨的SQL语句居然能成立,心中一万只草泥马奔腾。
后来发现,在PostgreSQL用着跟家常便饭一样的窗口函数竟然MySQL根本没有,彻底无语。
好吧,还是提供点有用的东西,在MySQL中实现rank的窗口函数:
http://stackoverflow.com/questions/3333665/rank-function-in-mysql