select from tb where posttime-$timestamp<15 order by top?这种别扭的问题毫无意义。

解决方案 »

  1.   

    什么叫毫无意义,当然是有特殊要求才这么做了!你能搞定咩?
    select from tb where posttime-$timestamp<15 order by top?这样出来的结果是什么?只选置顶的???不置顶的不要了???真是。。不看清就乱说!
      

  2.   

    select from tb where to_days(posttime) > to_days(now()) - 15 or 1 order by topflag desc,posttime desc limit 20;
    这样子不知道能否符合你的条件。
    posttime为发布时间
    topflag为置顶属性字段
    里面的1代表其它成立的条件
      

  3.   

    keaizhong(可爱钟) :不行!!你的 or 1 不是就包括所有的了吗?
      

  4.   

    用户有访问时先 把 15天以上的UPDATE
    之后 SELECT * FROM {table} WHERE 条件 ORDER BY 置顶标识符
      

  5.   

    TO keaizhong(可爱钟) 不 是吧!那如果我就是不要其它条件,就是所有的呢?看来你的方法也不行啊!谢谢先!
      

  6.   

    TO  keaizhong(可爱钟)  你说的是你上面写的topflag吗??那你说条件要怎么写??比如我置顶时我topflag值为1,不置顶的为0 我要怎么写??
      

  7.   

    增加一字段存储设置置顶的时间。top datetime
    设置置顶也要数据库自动完成?如果是就太怪异了。
    查询语句
    select * from tbl_name where adddate(top,interval 15 day)>=now()
      union
      select * from tbl_name where adddate(top,interval 15 day)<now();
    前半句提取符合置顶条件的记录,后半句提取其他的记录。用union子句连接成完整的查询结果
      

  8.   

    看来还有很多东东偶要学啊!
    Union是什么意思??请问唠叨是不是PHPx中的唠叨版主? 我先试一下!
      

  9.   

    Union是数据库DML的关键字之一,用于联合数据集
      

  10.   

    在Phpx.com得到了答案!!介绍if()在sql中的用法,现在想起了 
    改成这样还能分级预置,例如一级预置,二级预置,三级预置代码:--------------------------------------------------------------------------------
    SELECT *, IF(DATE_SUB(NOW(), INTERVAL 15 DAY)< posttime and pin>0,pin,0) as pinkey FROM posts WHERE `type`='t' ORDER BY pinkey DESC,id DESC
    --------------------------------------------------------------------------------例如 pin=2 就是二级预置了
    SQL数据(test数据库):代码:--------------------------------------------------------------------------------
    CREATE TABLE `posts` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `title` tinytext NOT NULL,
      `posttime` datetime NOT NULL default '0000-00-00 00:00:00',
      `type` char(1) NOT NULL default '',
      `pin` tinyint(3) unsigned NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=9 ;-- 
    -- 导出表中的数据 `posts`
    -- INSERT INTO `posts` VALUES (1, '这是第一张帖子', '2005-04-15 08:00:00', 't', 1);
    INSERT INTO `posts` VALUES (2, '这是第一张帖子的回复', '2005-04-15 09:11:00', 'r', 0);
    INSERT INTO `posts` VALUES (3, '这是第二个主题', '2005-04-27 00:00:00', 't', 0);
    INSERT INTO `posts` VALUES (4, '第三个主题', '2005-04-11 11:00:00', 't', 0);
    INSERT INTO `posts` VALUES (5, '第四个主题', '2005-04-13 11:00:00', 't', 1);
    INSERT INTO `posts` VALUES (6, '第五个主题', '2005-04-16 00:00:00', 't', 0);
    INSERT INTO `posts` VALUES (7, '第七个主题', '2005-03-24 00:00:00', 't', 1);
    INSERT INTO `posts` VALUES (8, '第八个主题', '2005-04-29 00:00:00', 't', 0);
      

  11.   

    TO  ashchen(陈辉) 您有什么高招吗?我也不想的!!
      

  12.   

    TO keaizhong(可爱钟) 
    -------------------------------------------------------------------------------------
    select from tb where to_days(posttime) > to_days(now()) - 15 or 1 order by topflag desc,posttime desc limit 20;
    这样子不知道能否符合你的条件。
    posttime为发布时间
    topflag为置顶属性字段
    里面的1代表其它成立的条件
    -------------------------------------------------------------------------------------
    请问
    1、to_days(posttime) > to_days(now()) - 15 条件得到的是什么?是不是发布时间是不是15天之前?2、or 1 又是什么?按你的意思如果没有其它条件可以不要是不是?两个条件加OR一下是不是发布时间15天之内的记录????
      

  13.   

    回复人: ankyliu(Anky.Liu) ( ) 信誉:100  2005-04-15 10:11:00  得分: 0  
     
     
       什么叫毫无意义,当然是有特殊要求才这么做了!你能搞定咩?
    select from tb where posttime-$timestamp<15 order by top?这样出来的结果是什么?只选置顶的???不置顶的不要了???真是。。不看清就乱说!
      
     
    -------------------
    我不懂。我不说了,ok?
    回复人: ashchen(陈辉) ( ) 信誉:120  2005-04-15 15:52:00  得分: 0  
     
     
       别让数据库变成了计算器
    -----------------------
    同意。  
     
    ps:说话不要那么冲。别人帮你不是义务。
      

  14.   

    用时间戳吧!
    有置顶标记的加上15天的描述!!然后在ORDER BY这个值!
      

  15.   

    回复人: tiaoci(我挑刺,我快乐) ( ) 信誉:100  2005-04-16 08:15:00  得分: 0  
     
     
       经鉴定楼主是猪,这个问题一楼其实已经解决了还讨论到现在,纯粹找骂  
     
      

  16.   

    呵呵,小弟乱说几句,
    以上方法觉得都不好(别打我:))
    唠叨老大的我不知道好不好,感觉把时间那里adddate(top,interval 15 day)>=now()改成型如
    top 〉= (now + 15 day)就最好了:)
    其他的感觉都有可能造成遍历表。
    orderby 后边跟 时间差排序最不赞成,order里的咚咚不要没有索引的,(尽量,呵呵,有的时候也是没有办法的。)
    if哪个就看不清楚了,不过感觉效率好不到哪里去
      

  17.   

    楼主是用别人的设计模型还是改别人代码阿?
    赫赫,对于这个问题union可以胜任,但是如果太勉强的还是建议不要这样做,数据量大了以后就成垃圾了,宁可改php部分了:)