如何在mysql查询中获得返回行的随机顺序

时间:2012-03-04 07:31:29

标签: mysql sql

我有MySQL查询,返回行集。我需要的是每次执行查询时以随机顺序获取它们。

例如,我有查询

SELECT id,id_banner,name FROM module_banner

它返回3行id,1,2,3

我想以随机顺序获取它们--3,2,1 2,3,1 1,3,2等等。

如果问题不明确,请告诉我

P.S。

是否有没有RANDOM()函数的解决方案?

3 个答案:

答案 0 :(得分:4)

您想使用ORDER BY RAND()

SELECT id,id_banner,name FROM module_banner ORDER BY RAND()

答案 1 :(得分:2)

只需在查询结尾添加ORDER BY RAND()

查询一般将是

SELECT field1, field2, ... , field(n) FROM TableName ORDER BY RAND()

在你的情况下,它将是

SELECT id, id_banner, name FROM module_banner ORDER BY RAND()

更新1

在搜索时我发现了一篇文章&您应该阅读这篇文章: "Do not use ORDER BY RAND() or How to get random rows from table?"

答案 2 :(得分:-1)

SELECT id,id_banner,name
  FROM module_banner JOIN
       (SELECT CEIL(RAND() *
                    (SELECT MAX(id)
                       FROM module_banner)) AS id
        ) AS r2
       USING (id);

Reference