SELECT * FROM expert t1 JOIN ( SELECT ROUND( RAND( ) * ( ( SELECT MAX( expert_id ) FROM expert ) - ( SELECT MIN( expert_id ) FROM expert ) ) + ( SELECT MIN( expert_id ) FROM expert ) ) AS expert_id ) AS t2 WHERE t1.expert_id >= t2.expert_id ORDER BY t1.expert_id LIMIT 1;