假设我有一个学生列表,我想做一个简单的查询,例如:
SELECT * FROM STUDENTS WHERE SCHOOLID = 10;
但是,如果第 10 所学校有 20(或 n)名学生,我想在每次运行查询时随机选择 7(或 m)名学生。MySQL中是否有可能的查询?
采用
SELECT * FROM students WHERE schoolid = 10 ORDER BY RAND() LIMIT m
SELECT * FROM STUDENTS WHERE SCHOOLID = 10 ORDER BY RAND() LIMIT 7
请注意RAND()
对大桌子使用是不好的做法。
您可以尝试(编辑:哎呀,TOP 是一个 T-SQL 关键字;Oracle/MySQL 使用限制):
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