如何使用mysql获取内连接中的随机行?

时间:2011-08-03 13:04:36

标签: mysql

我正在使用以下查询来获取随机行

'SELECT * FROM TABLENAME1 ORDER BY RAND() LIMIT 1'。这个查询将返回随机行。但是我需要获取放在另一个表中的名称。所以我必须使用连接查询。

'SELECT tablename1.*,tablename2.name FROM tablename1 INNER JOIN tablename2 ON tablename1.id = tablename2.id ORDER BY RAND(tablename1.id)'

以上查询每次返回相同的行,我没有得到随机行。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

RAND(tablename1.id)使用tablename1.id作为伪随机数生成器的种子,因此每次都会给出相同的结果。尝试在第二个查询中使用RAND()

答案 1 :(得分:1)

出于某种原因,您正在使用tablename1.id播种查询的第二个版本。 使用相同的种子值调用RAND()会返回相同的结果。