我有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()函数的解决方案?
答案 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()
在搜索时我发现了一篇文章&您应该阅读这篇文章: "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);