0

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

SELECT * FROM STUDENTS WHERE SCHOOLID = 10;

但是,如果第 10 所学校有 20(或 n)名学生,我想在每次运行查询时随机选择 7(或 m)名学生。MySQL中是否有可能的查询?

4

4 回答 4

3

采用

SELECT * FROM students WHERE schoolid = 10 ORDER BY RAND() LIMIT m
于 2012-08-24T18:51:08.210 回答
1
SELECT * FROM STUDENTS WHERE SCHOOLID = 10 ORDER BY RAND() LIMIT 7

请注意RAND()对大桌子使用是不好的做法。

于 2012-08-24T18:48:11.317 回答
1

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

SELECT * FROM STUDENTS WHERE SCHOOLID=10 ORDER BY RAND() LIMIT 7
于 2012-08-24T18:48:24.210 回答
1

用于LIMIT m仅选择 m 个结果,并ORDER BY RAND()随机化您选择的 m 个记录:

SELECT * FROM Students
WHERE SchoolID = 10
ORDER BY RAND()
LIMIT 7
于 2012-08-24T18:49:39.247 回答