SQL语句的嘛~
以时间排序、分组、LIMIT 2 不就行了?

解决方案 »

  1.   

    order by 时间倒序 limit 0,2
      

  2.   

    可以先把所有类别取出来 然后来个union 呵呵.
      

  3.   

    上午,我在考虑sql语句能不能办到。fyxw 的方法,不知道要查询多少次数据库。最好查询一次就能完成;
    想了一上午,实在想不出怎么用sql处理,就用php处理的。我的处理方法,查询一次数据库。
      

  4.   

    写到一起,最少要使用in或者union再或者left jion
      

  5.   

    就按下面的表下sql语句吧,盗用的人家表,呵呵
    MYSQL数据库,求一SQL语句,每个类别取最新一条信息。表一: data_class(分类表,有两个字段)字段: ID ClassName
    内容: 1 类别名一
    2 类别名二
    3 类别名三
    4 类别名四表二: data_news(内容表,有四个字段,字段BigClass对应data_class表的ID字段)字段: ID Title BigClass PostTime
    内容: 1 AAAAA 2 2007-02-01
    2 BBBBB 1 2007-03-04
    3 CCCCC 1 2007-04-05
    4 DDDDD 3 2007-04-05
    5 EEEEE 4 2007-04-05
    6 FFFFF 3 2007-04-06
    7 IIIII 2 2007-04-07我想按录入时间PostTime倒序,查类别BigClass为(1,2,3)这3个类的信息,每个类的信息只查最新两条。
      

  6.   

    不知道你的数据库是什么?
    如果mysql5.0以上或者sqlserver,可以用联查实现
    select * from 表名 a 
    where 主键名 in (select top 2 主键名 from 表名 b where b.分类字段名=a.分类字段名)  order by 分类字段名否则只能用循环,两次查找数据库了
      

  7.   

    order by 时间倒序 limit 0,2
      

  8.   

    不会写sql语句,我用php实现的,下面是函数
    function bulidlist($onekid,$lines=2){         …… $result=mysql_query("select * from tvlist where onekid=$onekid order by threekid,tvid desc");
    while ($row=mysql_fetch_array($result)){
    if($type[3]!=$row['threekid']){
    $type[3]=$row['threekid'];
    $n=0;
    }else{
    $n++;
    if($n>$lines-1)continue;
    }
            
                  ……
    }
      

  9.   

    应该要查询二次数据库才做的到吧。
    循环查询分类的TOP2条记录。。
    $result=mysql_query("SELECT BigClass FROM BigClass ORDER BY ID DESC");
    while ($row=mysql_fetch_array($result)){
          $sql = "select * from tvlist where onekid=$row['BigClass'] order by threekid,tvid desc LIMIT 0,2";
       .....
    }
      

  10.   

    解释一下:
       我上面那段代码,bulidlist函数的第一个参数$onekid是一级分类的id,这个一级分分类又有2级分类,我写的函数的意思是每个2级分类提取2条记录。如果没有只有1级分类,完全可以:
    function bulidlist($lines=2){         …… $result=mysql_query("select * from tvlist order by threekid,tvid desc");
    while ($row=mysql_fetch_array($result)){
    if($type!=$row['threekid']){
    $type=$row['threekid'];
    $n=0;
    }else{
    $n++;
    if($n>$lines-1)continue;
    }
            
                  ……
    }不过,还是想知道,如何用sql语句实现
      

  11.   

    select * from data_news a 
    where ID in (select ID from data_news b where b.BigClass=a.BigClass order by PostTime DESC LIMIT 0,2)  order by BigClass试试这个
      

  12.   

    sql 语句where class='' limit 2
      

  13.   

    limit 0+$page*2,2+$page*2
    $page 从0计数
    想从1技术
    把结果-2!
      

  14.   

    sqlserver 不支持limit语句,只能通过function来实现
      

  15.   

    “sqlserver可以用top解决”怎么解决啊?