实现这个查询,如何写SQL语句最优化 像这种显示方式:第一个是带缩略图的标题:标题、缩略图、简介;(发布时间较新的、带缩略图的)下面是显示该栏目下的其他最新发布的文章,不包含上面那一条我想了一种方式,是先查询出第一条带缩略图的标题来,一条SQL语句了;再查询下面不带缩略图的,把上面那条的id排除,又一条SQL语句。这样要查询两次,能不能写一条SQL语句查询,根据条件来判断实现这个功能。求思路或者贴代码!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 表结构 表名:contentid 文章idtitle 文章idthumb 缩略图summary 简介dateline 发布时间 select * from content order by dateline desc;用程序判断第一条记录显示缩略图,后面的记录不显示缩略图 按照这样的sql语句查询结果,在遍历的时候判断是否第1条即可 $i=0;foreach($array as $value){ $i++; if($i==1) { ... }......} 这种方式我感觉还不如写两条SQL语句执行效率高呢,你这个要查询所有的记录。数据量大了,会影响执行效率的。 select * from table limit from,to取从from到to的纪录。 如果用一条查询语句,就像你说的不一定每一项都有缩略图,如果你所查到的几条里面正好没有包含缩略图的项目,那么缩略图项目就没有办法显示了。如果非要用一条实现的话,下面的方法也许可以。// select * from table limit from,to.......$i=1;while($row = mysql_fetch_array($query)){ if($i==1 && $row['img']) // $row['img']为缩略图 { //输出缩略图文章 …… $i++ } //输出非缩略图文章列表 ……} if($i==1 && $row['img']) // $row['img']为缩略图 { //输出缩略图文章 …… $i++ } else { //输出非缩略图文章列表 …… }不好意思上面的少了个Else select id, title, thumb, summaryfrom tablename where thumb is not null ( 根据你的表结构,也许是thumb!='' )order by dateline limit 1 union select id, title, thumb, summaryfrom tablename where thumb is null ( 根据你的表结构,也许是thumb='' )order by dateline limit 10 这样的话,缩略图下面的几条信息如果没有缩略图的就不会显示了。我只选取最新发布&&带缩略图的在第一条显示,下面的无论是否带缩略图该怎么显示还是怎么显示,但是要排除第一条。 写两条吧,不过你得把显示两个不同位置的记录都区分开来,因为如果按你之前说的那种方法,先搜出第一条,再去搜第二个地方显示的记录,并把之前的ID去掉,这样会造成额外的开销(利用SQL来去除会用不到索引,利用程序去掉也需要相应的操作),所以区分开来是比较好的 有做discuz bbs session存入memcache的吗 订单编号问题求解? php curl 怎么不生效 PHP 去除连续的空格 换行 回车 怎么弄? 这种假文件怎么做? 一条奇怪的系统命令 php 中如何取得变量名? 有一个文件,共有四行内容如下,行与行之间是用\r来换行的,现在我想得到第三行的数据内容,应该如何做呢 我载网上升级了linux,包括apache,php,mysql,现在php不能解析,只能是静态的,急! session真的好难用啊,请帮忙 如何创建递增id文件夹? php js取值
title 文章id
thumb 缩略图
summary 简介
dateline 发布时间
按照这样的sql语句查询结果,在遍历的时候判断是否第1条即可
$i=0;
foreach($array as $value)
{
$i++;
if($i==1)
{
...
}
......
}
select * from table limit from,to
取从from到to的纪录。
// select * from table limit from,to.......$i=1;
while($row = mysql_fetch_array($query))
{
if($i==1 && $row['img']) // $row['img']为缩略图
{
//输出缩略图文章
……
$i++
} //输出非缩略图文章列表
……
}
if($i==1 && $row['img']) // $row['img']为缩略图
{
//输出缩略图文章
……
$i++
} else { //输出非缩略图文章列表
……
}
不好意思上面的少了个Else
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