sql语句实现随机取n条数据(转)
我想把数组打乱随机取些值,于是用PHP的shuffl()打乱数组,当然,array_rand()也是可以随机取数组的,但是我想到另一个更高效的办法,是不是能用sql直接随机数据?当然可以!
mysql是这样实现的:
select * from tablename order by rand() limit 10
说明:rand()返回在范围0到1.0内的随机浮点值
sqlserver是这样实现的:
select top 10 * from tableName order by NewID()
说明:NewID()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的了 .