2014年6月6日星期五

MySQl分组显示组内前N项

之前在网上搜索过几种解决办法,一直都不是很满意

分开查询

先查询id
select CAST(group_concat(ids) AS CHAR(10000) CHARACTER SET utf8) as iid 
from (select SUBSTRING_INDEX(group_concat(id ORDER BY 字段),',',4) as ids from `table` group by 字段) as val
在根据id查询数据
SELECT * FROM table where id in ($id)

这种也是可以的
select 字段,substring_index(group_concat( concat(字段,':',字段) order by 字段 desc separator '|'),'|',5) fromtable group by 字段;
具体看情况

没有评论:

发表评论