返回按随机顺序排[复制](Return rows in random order [duplicat

2019-06-25 17:55发布

这个问题已经在这里有一个答案:

  • 如何在随机选择SQL行? 9个回答

是否有可能写在随机顺序每次查询运行时返回表行的SQL查询?

Answer 1:

SELECT * FROM table
ORDER BY NEWID()


Answer 2:

这是最简单的解决方案:

SELECT quote FROM quotes ORDER BY RAND() 

它虽然不是最有效的。 这一个是一个更好的解决方案。



Answer 3:

通常的方法是使用NEWID()函数,其产生一个唯一的GUID。 所以,

SELECT * FROM dbo.Foo ORDER BY NEWID();


Answer 4:

为了提高效率,并且随机的,它可能是最好的有两个不同的查询。

就像是...

SELECT的table_id FROM表

然后,在你选择的语言,选择一个随机ID,然后拉出该行的数据。

SELECT * FROM表,其中的table_id = $ rand_id

但是,这不是真的,如果你期待有很多表中的行的一个好主意。 如果你把某种限制对你随机选择会更好。 对于出版物,也许随机仅在过去一年内张贴的项目挑选。



Answer 5:

下面是一个例子( 源 ):

SET @randomId = Cast(((@maxValue + 1) - @minValue) * Rand() + @minValue AS tinyint);


Answer 6:

这是你所需要的:

SELECT * FROM表名ORDER BY RAND()LIMIT 1



文章来源: Return rows in random order [duplicate]