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

如何在mysql查询中获得返回行的随机顺序,mysql,sql,Mysql,Sql,我有一个MySQL查询,它返回一组行。我需要的是在每次执行查询时以随机顺序获取它们 例如,我有一个查询 SELECT id,id_banner,name FROM module_banner 它返回3行,ID为-1,2,3 我想以随机顺序得到它们,3,2,12,3,11,3,2等等 如果问题不清楚,请告诉我 附言 没有随机函数有解吗 您想使用按兰德排序: 只需在查询结束时添加ORDER BY RAND 查询一般将被删除 选择字段1、字段2、,表名中按兰德排序的字段n 在你的情况下是这样的 按兰

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

例如,我有一个查询

SELECT id,id_banner,name FROM module_banner
它返回3行,ID为-1,2,3

我想以随机顺序得到它们,3,2,12,3,11,3,2等等

如果问题不清楚,请告诉我

附言

没有随机函数有解吗

您想使用按兰德排序:

只需在查询结束时添加ORDER BY RAND

查询一般将被删除

选择字段1、字段2、,表名中按兰德排序的字段n

在你的情况下是这样的

按兰德从模块条幅订单中选择标识、标识条幅、名称

更新1 在搜索时,我发现了一篇文章&您应该阅读这篇文章:


检查这是演示查询。我使用的方法很复杂,RAND会导致性能下降为什么需要随机结果?你的其他情况是什么样的-可能有更好的方法来获得你需要的结果。请注意,在SQL中,除非指定了ORDER BY语句,否则结果是“随机的”——您将无法保证返回结果的顺序。为了生成随机查询结果顺序,您至少需要一个随机数。你建议如何生成一个没有随机数的伪随机数?你还有别的语言吗?我不能接受。在本文中,他在LIMIT中使用生成的数字,但我有自己的限制,我不能用这些数字替换它来生成随机行。但是谢谢你提供的信息。@Ahmed:你能告诉我你现在的情况和你想要达到的目标吗??也许这样我们可以帮助您…在一些行数有限的表上执行sql查询。实际上,查询返回横幅。返回行的数量可以限制,例如10,在页面上以不同的顺序显示横幅,每次页面加载编辑问题并将此信息添加到那里,以便所有人都可以在那里阅读。。。对不起,没有早点通知你。任何与问题相关的信息都会受到质疑……您在前端使用哪种语言??在PHP中,您可以使用shuffle。我知道你可以使用随机等。。。
SELECT id,id_banner,name FROM module_banner ORDER BY RAND()
SELECT id,id_banner,name
  FROM module_banner JOIN
       (SELECT CEIL(RAND() *
                    (SELECT MAX(id)
                       FROM module_banner)) AS id
        ) AS r2
       USING (id);