从mysql中选择随机记录

时间:2014-07-26 20:09:29

标签: mysql sql

在表X中,有一个字段Y(int),它保存从1到8的值。 我正在尝试找到最有效的方法来创建一个查询(它是存储过程的一部分),它可以从数据库中选择一个随机的5条记录。

5条记录在整个表格中不是随机的 - 例如程序应该能够 选择1个随机记录,其中Y = 1,另外2个记录,其中Y = 2,另外2个记录,其中Y在(4,5,6)中。

是否有推荐的方法来实现它,还是应该使用Union? 此查询需要尽可能快。

1 个答案:

答案 0 :(得分:1)

联盟应该是最快的方式

(select * from your_table where Y = 1 order by rand() limit 1)
union
(select * from your_table where Y = 2 order by rand() limit 2)
union
(select * from your_table where Y in (4,5,6) order by rand() limit 2)
相关问题