84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
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