账号通
    

账号  

密码  

4474

查看

18

回复
主题:[已解决][SQL文章列表]显示某栏目最新头条,列表怎么才能排除最新的头条 [收藏主题] 转到:  
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/2/24 9:58:00   | 显示全部帖子 查看该作者主题 楼主 
做在线知识付费 选科汛云开店


此主题相关图片如下:snap7.gif
snap7.gif
如图所示:

本栏目有一条最新的头条文章(注意是最新的才显示)

然后列表区怎么才能排除那条最新的文章?

用SQL语句怎么写?

 

我这样写,结果还是会把最新的头条显示出来:

select top {$Param(1)} ID,Tid,Title,Adddate from KS_Article where Tid in(select ID from KS_Class where TS like '%{$Param(0)}%') and DelTF=0 and Verific=1 and ID not in (select top 1 ID from KS_Article where Strip=1 order by {$Param(2)} desc) order by IsTop desc, {$Param(2)} desc

说明:{$Param(0)} 为栏目ID 含子栏目

   {$Param(1)} 为调用的文章条数

   {$Param(2)} 为排序方式

 

问题终于被我解决了。

原来的SQL语句是:

select top {$Param(1)} ID,Tid,Title,Adddate from KS_Article where Tid in(select ID from KS_Class where TS like '%{$Param(0)}%') and DelTF=0 and Verific=1 and ID not in (select top 1 ID from KS_Article where Strip=1 order by {$Param(2)} desc) order by IsTop desc, {$Param(2)} desc

 

其实这样如果文章系统只有一个栏目,倒也没有什么问题,但如果有多个栏目的话,查询的结果就不那么准确了。

 

所以语句改良如下(红色部分):

select top {$Param(1)} ID,Tid,Title,Adddate from KS_Article where Tid in(select ID from KS_Class where TS like '%{$Param(0)}%') and DelTF=0 and Verific=1 and ID not in (select top 1 ID from KS_Article where Tid in(select ID from KS_Class where TS like '%{$Param(0)}%') and DelTF=0 and Verific=1 and Strip=1 order by {$Param(2)} desc) order by IsTop desc, {$Param(2)} desc

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/3/3 16:02:00   | 显示全部帖子 查看该作者主题 沙发 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/2/26 16:10:00   | 显示全部帖子 查看该作者主题 藤椅 
做在线知识付费 选科汛云开店
期待SQL高手和官方出手!
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/3/4 17:33:00   | 显示全部帖子 查看该作者主题 板凳 
科汛智能建站系统
最后顶一次,没人回复就不再顶了。
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/3/3 9:34:00   | 显示全部帖子 查看该作者主题 报纸 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/3/2 9:50:00   | 显示全部帖子 查看该作者主题 地板 

谢谢无风的回复。可能你没有看清我的问题,你这样可以实现头条与非头条的文章列表,但你的SQL语句在实际应用中有漏洞,那就是除了最新的头条,其它的旧头条没法显示了(在列表区漏掉了)。当然,你的方法也有用,就是整个栏目只能有一条头条,设置了最新的,就必须把其它的头条属性去掉。

 

我的问题是:第1条显示某栏目最新头条,列表区(2-8条)怎么才能排除最新的头条(列表区可能包含旧的头条)

 

例如:(注意列表区的第7条)

1、这是栏目最新的头条

2、这是列表区的文章

3、这也是列表区的文章

4、这条还是列表区的文章

5、这条也是列表区的文章

6、这条同样是列表区的文章

7、这条是旧头条文章,但已经不是最新头条了,就放到列表区了

8、这条还是列表区的文章

 

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/3/1 14:54:00   | 显示全部帖子 查看该作者主题 7楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/2/25 22:16:00   | 显示全部帖子 查看该作者主题 8楼 
以下是引用无风在2010-2-24 21:35:00的发言:
非头条标签需要用条件语句过滤掉是头条的文章

最新头条标签是很容易。

列表标签的SQL语句才麻烦,现在的问题就是不知道怎么剔除已经显示在上面的最新头条。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/2/24 17:49:00   | 显示全部帖子 查看该作者主题 9楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iwo630 当前离线

532

主题

0

广播

0

粉丝
添加关注
级别:五年级

用户积分:3724 分
登录次数:152 次
注册时间:2008/11/8
最后登录:2010/12/10
iwo630 发表于:2010/2/24 15:29:00   | 显示全部帖子 查看该作者主题 10楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.18750秒 powered by KesionCMS 9.0