首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

怎么分别获得N个小类上各前数条记录

2012-07-22 
如何分别获得N个小类下各前数条记录?需分别获得一个大类下的N个小类各前5条记录,不知用什么方法比较好?例

如何分别获得N个小类下各前数条记录?
需分别获得一个大类下的N个小类各前5条记录,不知用什么方法比较好?

例如:
大类:新闻资讯
小类:国内新闻、国际新闻、公司动态

要求:
从这三个小类别里各取最新的5条记录,并可单独赋值予三个数组,以便在前台模板上可单个列表。

现在的做法是foreach分别取:

PHP code
foreach($news_type as $key => $val){    $result = $this->db->query("SELECT * FROM article WHERE type_id='$val' ORDER BY id DESC LIMIT 5");    $array_list[$key] = $result;}


觉得这样效率较差,不知有没有更好的方法?


[解决办法]
用一条语句去出来 效率和你循环取其实差不多




SELECT * FROM article A WHERE 5>=(select count(*) from article B where A.type_id=B.type_id and A.id<B.id)
order by id desc
[解决办法]
参考下贴中的多种方法

http://blog.csdn.net/acmain_chm/article/details/4126306
[征集]分组取最大N条记录方法征集,及散分....
[解决办法]
参考:
http://topic.csdn.net/u/20091231/16/2f268740-391e-40f2-a15e-f243b2c925ab.html?49369
中我的回答

热点排行