MySQL中的RAND()函数使用详解
MySQLRAND()函数调用可以在0和1之间产生一个随机数:
mysql>SELECTRAND(),RAND(),RAND(); +------------------+-----------------+------------------+ |RAND()|RAND()|RAND()| +------------------+-----------------+------------------+ |0.45464584925645|0.1824410643265|0.54826780459682| +------------------+-----------------+------------------+ 1rowinset(0.00sec)
当调用一个整数参数时,RAND()使用该随机数发生器种子值。每次在给定值种子生成,RAND()会产生一个可重复的一系列数字:
mysql>SELECTRAND(1),RAND(),RAND(); +------------------+------------------+------------------+ |RAND(1)|RAND()|RAND()| +------------------+------------------+------------------+ |0.18109050223705|0.75023211143001|0.20788908117254| +------------------+------------------+------------------+ 1rowinset(0.00sec)
可以使用ORDERBYRAND(),随机组行或值如下:
要了解ORDERBYRAND()函数,假设EMPLOYEE_TBL的表有以下记录:
mysql>SELECT*FROMemployee_tbl; +------+------+------------+--------------------+ |id|name|work_date|daily_typing_pages| +------+------+------------+--------------------+ |1|John|2007-01-24|250| |2|Ram|2007-05-27|220| |3|Jack|2007-05-06|170| |3|Jack|2007-04-06|100| |4|Jill|2007-04-06|220| |5|Zara|2007-06-06|300| |5|Zara|2007-02-06|350| +------+------+------------+--------------------+ 7rowsinset(0.00sec)
现在使用以下目录:
mysql>SELECT*FROMemployee_tblORDERBYRAND(); +------+------+------------+--------------------+ |id|name|work_date|daily_typing_pages| +------+------+------------+--------------------+ |5|Zara|2007-06-06|300| |3|Jack|2007-04-06|100| |3|Jack|2007-05-06|170| |2|Ram|2007-05-27|220| |4|Jill|2007-04-06|220| |5|Zara|2007-02-06|350| |1|John|2007-01-24|250| +------+------+------------+--------------------+ 7rowsinset(0.01sec) mysql>SELECT*FROMemployee_tblORDERBYRAND(); +------+------+------------+--------------------+ |id|name|work_date|daily_typing_pages| +------+------+------------+--------------------+ |5|Zara|2007-02-06|350| |2|Ram|2007-05-27|220| |3|Jack|2007-04-06|100| |1|John|2007-01-24|250| |4|Jill|2007-04-06|220| |3|Jack|2007-05-06|170| |5|Zara|2007-06-06|300| +------+------+------------+--------------------+ 7rowsinset(0.00sec)