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