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

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

如何分别获得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

中我的回答

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

相关文章:

你感兴趣的文章:

标签云: