1、所使用的基本知识
RAND(); //获取[0,1)之间的数据,是一个浮点数据
ROUND(n); //MySQL四舍五入函数
FLOOR(n); //向下取整函数,取小于等于n的数
ceil(n); //向上取整,取大于等于n的数
随机取一个范围内的数据常见的方式就是
round( rand() * (max - min + min) )
2、SQL语句
##多表连接实现随机数据的读取
SELECT student.id,stu_name,stu_age,stu_addr FROM student AS student INNER JOIN (
## SELCT命令会形成一个内存中虚拟的表,所以可以对内存中虚拟的表进行多表连接
SELECT ROUND(RAND() * ((SELECT MAX(id) FROM student)-(SELECT MIN(id) FROM student))+(SELECT MIN(id) FROM student)) AS id
) AS temp
WHERE student.id >= temp.id ## 连接的条件
ORDER BY student.id LIMIT 10; ## 排序并得到指定条数
测试
数据库中总的数据量,一共18条
随机选取的数据量
总结
在进行多表连接查询的时候,我们通常使用的是两张实实在在的表,而使用SELECT查询语句的时候也会产生一个虚拟的表,同样可以进行多表连接查询的操作,并且这张虚拟的表存在内存中,所以执行效率会大大提升。