设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย french

搜索
热搜: 活动 交友 discuz

调用最后60条记录,然后随机排序 [复制链接]
查看:80 | 回复:7

85

主题

151

回帖

585

积分

高级会员

积分
585
发表于 2011-2-20 00:10:16 | 显示全部楼层 |阅读模式
这样是调用随机的60条

正确的方法我也不懂

大概方法是,按正常顺序调用最后的60条,返回数组,再把这个数组的顺序打乱

[ 本帖最后由 gdtv 于 2011-2-20 00:12 编辑 ]

993

主题

5160

回帖

1万

积分

论坛元老

积分
13415
发表于 2011-2-20 00:11:35 | 显示全部楼层
要用子查询

select  *  from (select * from table_name order by PK desc limit 0,60) tmp_table order by rand()

但是性能不是最好

select * from table_name order by PK desc limit 0,60获取数据,然后用程序shuffle列表相对好一点

91

主题

4681

回帖

9715

积分

论坛元老

积分
9715
发表于 2011-2-20 00:22:07 | 显示全部楼层


不会技术的路过...

235

主题

4363

回帖

9527

积分

论坛元老

积分
9527
发表于 2011-2-20 00:31:24 | 显示全部楼层
select * from news order by rand()
desc
limit 60

70

主题

1058

回帖

2378

积分

金牌会员

积分
2378
发表于 2011-2-20 03:06:56 | 显示全部楼层
原帖由 zllovesuki 于 2011-2-20 03:06 发表


select * from news order by rand() desc limit 60

嗯,倒序加上了,然后应该limit应该规定开始位置,从第0条记录开始的吧?[ol]
  • select * from news order by rand() desc limit 0,60[/ol]复制代码
  • 90

    主题

    1602

    回帖

    3552

    积分

    论坛元老

    积分
    3552
    发表于 2011-2-20 03:22:13 | 显示全部楼层
    原来这里还可以问这些问题的
    看来下次有地方发问了

    177

    主题

    3746

    回帖

    8147

    积分

    论坛元老

    积分
    8147
    发表于 2011-2-20 04:16:28 | 显示全部楼层
    原帖由 张生 于 2011-2-20 20:56 发表




    这条代码我用在ECMS上面的,如果按照这种写法,每次生成一个页面要消耗2~5秒


    这是全部记录打乱之后取倒序60条,不是倒序取60条然后打乱, mysql全部记录order by rand效率肯定低的,你真的要实现这个,可以搜下order by rand mysql 效率这几个关键词,有人写过存储过程版,子查询版,表连接版的替代优化方式的

    85

    主题

    151

    回帖

    585

    积分

    高级会员

    积分
    585
     楼主| 发表于 2011-2-20 20:56:41 | 显示全部楼层
    rand() 非常慢这样肯定慢的,要快先取出到数组再打乱数组

    这样的东西靠mysql去做肯定慢
    您需要登录后才可以回帖 登录 | 立即注册

    论坛客服/商务合作/投诉举报:2171544 (QQ)
    落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
    拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
    落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
    © 2001-2014

    浙公网安备 33060302000191号

    浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

      落伍法律顾问: ITlaw-庄毅雄

    Archiver|手机版|Discuz! X

    GMT+8, 2026-3-28 07:15 , Processed in 0.023935 second(s), 4 queries , Gzip On, Redis On.

    返回顶部