像这种显示方式:
第一个是带缩略图的标题:标题、缩略图、简介;(发布时间较新的、带缩略图的)
下面是显示该栏目下的其他最新发布的文章,不包含上面那一条我想了一种方式,是先查询出第一条带缩略图的标题来,一条SQL语句了;
再查询下面不带缩略图的,把上面那条的id排除,又一条SQL语句。
这样要查询两次,能不能写一条SQL语句查询,根据条件来判断实现这个功能。
求思路或者贴代码!!

解决方案 »

  1.   

    表结构 表名:contentid 文章id
    title 文章id
    thumb 缩略图
    summary 简介
    dateline 发布时间
      

  2.   

    select * from content order by dateline desc;用程序判断第一条记录显示缩略图,后面的记录不显示缩略图
      

  3.   


    按照这样的sql语句查询结果,在遍历的时候判断是否第1条即可  
    $i=0;
    foreach($array as $value)
    {
        $i++;
        if($i==1)
       {
            ...
       }
    ......
    }
      

  4.   

    这种方式我感觉还不如写两条SQL语句执行效率高呢,你这个要查询所有的记录。数据量大了,会影响执行效率的。
      

  5.   


    select * from table limit from,to
    取从from到to的纪录。
      

  6.   

    如果用一条查询语句,就像你说的不一定每一项都有缩略图,如果你所查到的几条里面正好没有包含缩略图的项目,那么缩略图项目就没有办法显示了。如果非要用一条实现的话,下面的方法也许可以。
    // select * from table limit from,to.......$i=1;
    while($row = mysql_fetch_array($query))
    {
        if($i==1 && $row['img'])  // $row['img']为缩略图
       {
            //输出缩略图文章
            ……
           $i++
       }   //输出非缩略图文章列表
      ……
    }
      

  7.   


        if($i==1 && $row['img'])  // $row['img']为缩略图
       {
            //输出缩略图文章
            ……
           $i++
       } else {     //输出非缩略图文章列表
          ……
       }
    不好意思上面的少了个Else
      

  8.   


    select id, title, thumb, summary
    from tablename 
    where thumb is not null   (  根据你的表结构,也许是thumb!='' )
    order by dateline limit 1 
    union 
    select id, title, thumb, summary
    from tablename 
    where thumb is null    (  根据你的表结构,也许是thumb='' )
    order by dateline limit 10 
      

  9.   

    这样的话,缩略图下面的几条信息如果没有缩略图的就不会显示了。我只选取最新发布&&带缩略图的在第一条显示,下面的无论是否带缩略图该怎么显示还是怎么显示,但是要排除第一条。
      

  10.   

    写两条吧,不过你得把显示两个不同位置的记录都区分开来,因为如果按你之前说的那种方法,先搜出第一条,再去搜第二个地方显示的记录,并把之前的ID去掉,这样会造成额外的开销(利用SQL来去除会用不到索引,利用程序去掉也需要相应的操作),所以区分开来是比较好的