Take the 2-minute tour ×

I am using following queries to fetch random rows,

'SELECT * FROM TABLENAME1 ORDER BY RAND() LIMIT 1' . this query will return random rows.But i need to get the name which is placed in another table.so here i have to use join queries.

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

The above queries return same rows everytime, I am not getting random rows.Kindly help me on this.

share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

RAND(tablename1.id) uses tablename1.id as the seed for the pseudorandom number generator, so it will give you the same result every time. Try just using RAND() in your second query.

share|improve this answer
Thanks very help –  Dinesh Aug 3 '11 at 13:21
add comment

For some reason, you're seeding the 2nd version of the query with tablename1.id. Calls to RAND() with the same seed value return the same results.

share|improve this answer
add comment

Your Answer


