用函数产生一个随机数对应你数据库中的编号,然后sql语句中用in()来取得

解决方案 »

  1.   

    但是数据库种有些记录被删除过,随机产生的ID在数据库中可能并不存在,如果用mysql的rand函数行不行?但是这个比较慢,10多条记录每次刷新都要读取一下估计mysql抗不住了
      

  2.   

    那你就事先生成 100 个随机数,估计怎么读出来都有 50 个歌曲了,不行就再读了,mysql 自己那个 rand 确实比较郁闷的,
      

  3.   

    select * from table r
    join ( select floor(rand()*(select max(id) from table )) as id) rand
    where r.id < rand.id
    order by r.id desc 
    limit 50
      

  4.   

    mysql
    select * from table order by rand() limit 50;
      

  5.   

    再建一个表...
    缓存一下.....或者用 memcache 把ID缓存起来....
      

  6.   

    晕死,这些方法真不省事,让我教你最简单的一招。
    select from table limit $num,50;
    这样就可以了,而这个$num就是一个随机数啦
      

  7.   

    多谢大家,我最终还是使用了rand