2011-08-03 4 views
0

ランダムな行を取得するために次のクエリを使用しています。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)

上記のクエリは、私がrows.Kindlyこれで私を助けてランダムになっていないです、毎回同じ行を返します。

答えて

1

RAND(tablename1.id)は、擬似乱数ジェネレータのシードとしてtablename1.idを使用するため、毎回同じ結果が得られます。 2番目のクエリでRAND()を使用してみてください。

1

何らかの理由で、tablename1.idというクエリの2番目のバージョンをシードしています。 同じシード値を持つRAND()を呼び出すと、同じ結果が返されます。

関連する問題