也就是如下两天SQL是否一样:SELECT name, RAND() FROM t ORDER BY RAND() LIMIT 10;

SELECT name, RAND() AS rd FROM t ORDER BY rd LIMIT 10;
还有就是RAND()产生的数据放在哪?

解决方案 »

  1.   

    如何测试?
    SELECT name, RAND() FROM t ORDER BY RAND() LIMIT 10;
    整个详细的执行过程是怎样的?
      

  2.   

    从MYSQL手册上的解释来看是RAND函数,每行记录时会执行一次。 所以应该 SELECT name, RAND() FROM t ORDER BY RAND() LIMIT 10; 中这两个RAND() 是相同的值。 试验结果也符合这个说法。如果要看具体的,则需要看一下MYSQL的源代码了。