MySQL随机n取m选择

MySQL随机n取m选择,mysql,sql,Mysql,Sql,假设我有一个学生列表,我想做一个简单的查询,如: SELECT * FROM STUDENTS WHERE SCHOOLID = 10; 但是,如果10号学校有20名(或n名)学生,我希望每次运行查询时随机选择7名(或m名)学生。MySQL中是否有可能对此进行查询 SELECT * FROM STUDENTS WHERE SCHOOLID = 10 ORDER BY RAND() LIMIT 7 请注意使用RAND()对于大表来说是不好的做法 请注意使用RAND()对于大表来说是不好的做法。

假设我有一个学生列表,我想做一个简单的查询,如:

SELECT * FROM STUDENTS WHERE SCHOOLID = 10;
但是,如果10号学校有20名(或n名)学生,我希望每次运行查询时随机选择7名(或m名)学生。MySQL中是否有可能对此进行查询

SELECT * FROM STUDENTS WHERE SCHOOLID = 10 ORDER BY RAND() LIMIT 7
请注意使用
RAND()
对于大表来说是不好的做法

请注意使用
RAND()
对于大表来说是不好的做法。

您可以尝试(编辑:oops,TOP是一个T-SQL关键字;Oracle/MySQL使用限制):

您可以尝试(编辑:oops,TOP是T-SQL关键字;Oracle/MySQL使用限制):


使用
LIMIT m
仅选择m个结果,使用
ORDER BY RAND()
随机选择m个记录:

SELECT * FROM Students
WHERE SchoolID = 10
ORDER BY RAND()
LIMIT 7

使用
LIMIT m
仅选择m个结果,使用
ORDER BY RAND()
随机选择m个记录:

SELECT * FROM Students
WHERE SchoolID = 10
ORDER BY RAND()
LIMIT 7
使用

使用


非常感谢arxanas,解决了我的问题Well非常感谢arxanas,解决了我的问题操作。。这是mysql而不是mssql:)哦。。这是mysql而不是mssql:)
SELECT * FROM students WHERE schoolid = 10 ORDER BY RAND() LIMIT m