请问一条关于MySQL的查询问题~望高手指导~感激不尽我想从mysql中的一块表中读取最新5条数据中随机的一条该怎么操作?本人是新人,谢谢各位耐心指导,一定结帖以下是我写的代码实现不了我想要的效果$x_query=$db->query("SELECT tid,fid FROM {$tablepre}threads where closed=0 order by tid desc limit ".$diy_num);该如何修改~~感激不尽~

解决方案 »

  1.   

    生成2个随机数即可   limit n,m
      

  2.   

    说错了  是一个随机数m  范围是 1-4
    limit m-1,m
      

  3.   

    $x_query=$db->query("SELECT tid,fid FROM {$tablepre}threads where closed=0 order by tid desc limit ".$diy_num,.$rand_num);是这样吗?请问~~
      

  4.   

    生成一个后,语句应该是:limit m,1,而不是limit m-1,m
      

  5.   

    你首先要写对【读取数据 且 按更新时间desc排序】的sql
    然后在最后 limit
      

  6.   

    3ks  我的错
    按你的sql m的随机范围0-3
      

  7.   

    没有测试,手写SELECT *, RAND() AS rnd FROM {$tablepre}threads WHERE tid IN
    (
    SELECT t.tid FROM 
    (SELECT tid FROM {$tablepre}threads where closed=0 ORDER BY tid DESC LIMIT 5)
    AS t
    )
    ORDER BY rnd DESC LIMIT 1
      

  8.   

    $sqlStr = "SELECT tid,fid FROM {$tablepre}threads where closed=0 order by tid desc  limit ".rand(0,3).",1 "; 
    $x_query=$db->query($sqlStr);