假设我有一个学生列表,我想做一个简单的查询,如:
SELECT * FROM STUDENTS WHERE SCHOOLID = 10;
但是,如果在校10中有20名(或n名)学生,我每次运行查询时都会随机选择7名(或m名)学生。在MySQL中是否存在可能的查询?
答案 0 :(得分:3)
使用
SELECT * FROM students WHERE schoolid = 10 ORDER BY RAND() LIMIT m
答案 1 :(得分:1)
SELECT * FROM STUDENTS WHERE SCHOOLID = 10 ORDER BY RAND() LIMIT 7
请注意使用RAND()
是大表的不良做法。
答案 2 :(得分:1)
您可以尝试(编辑:oops,TOP是T-SQL关键字; Oracle / MySQL使用LIMIT):
SELECT * FROM STUDENTS WHERE SCHOOLID=10 ORDER BY RAND() LIMIT 7
答案 3 :(得分:1)
使用LIMIT m
仅选择m个结果,使用ORDER BY RAND()
随机选择您选择的m个记录:
SELECT * FROM Students
WHERE SchoolID = 10
ORDER BY RAND()
LIMIT 7