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