찾다

 >  Q&A  >  본문

mysql - sql怎么随机取50条数据?

MySQL从一张表怎么随机取50条数据?

天蓬老师天蓬老师2786일 전677

모든 응답(7)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-17 13:42:55

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

    회신하다
    0
  • 阿神

    阿神2017-04-17 13:42:55

    SELECT * FROM table_name ORDER BY rand() LIMIT 50;

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-17 13:42:55

    SELECT *
    FROM 表名 AS t1
    JOIN (
    SELECT ROUND( RAND( ) * (SELECT MAX( id )FROM 表名 ) ) AS id
    ) AS t2
    WHERE t1.id >= t2.id
    ORDER BY t1.id ASC
    LIMIT 50

    회신하다
    0
  • 阿神

    阿神2017-04-17 13:42:55

    这个东西得分开看了。
    如果你的表记录没有上万级别。那么order by rand()也可以接受。
    但是表记录大的时候,order by rand()效率极低。
    所以建议在提问题的基础上,尽可能交代业务场景~~~。

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-17 13:42:55

    order by rand()

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 13:42:55

    rand()这玩意,依稀记得,在《高性能mysql》中一再强调,避免使用。
    结合实际情况,数据量不大几万十几万的,可以用用;
    再大了,还是用程序实现,再去查询吧。

    회신하다
    0
  • 黄舟

    黄舟2017-04-17 13:42:55

    rand()可以,但是请记住,上线项目不要用含任何计算的SQL语句。

    회신하다
    0
  • 취소회신하다