SELECT * FROM __TABLE__ AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM __TABLE__)-(SELECT MIN(id) FROM __TABLE__))+(SELECT MIN(id) FROM __TABLE__)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1这条语句单独用的时候百万数据随机取一条效率很高,但是我现在要在这个之上加条件,我写的是:SELECT * FROM __TABLE__ AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM __TABLE__)-(SELECT MIN(id) FROM __TABLE__))+(SELECT MIN(id) FROM __TABLE__)) AS id) AS t2 WHERE t1.id >= t2.id AND WHERE `city` = 'changsha' ORDER BY t1.id LIMIT 1中间加了一个条件“AND WHERE `city` = 'changsha' ”,这样查不出结果,但实际上有符合条件的数据,所以肯定写错了,请问要怎么添加条件呢? 最佳答案