一个sql语句中的mysql多重限制

dal*_*rek 8 php mysql

我在我的数据库中有一个名为"学生"的表包含以下列(student_id,student_name,year_of_birth).和多年的数组我尝试进行一次查询,每年在(年)数组中获得10个student_id.

我可以写

SELECT student_id FROM `students` WHERE year_of_birth=1950 LIMIT 10;
SELECT student_id FROM `students` WHERE year_of_birth=1951 LIMIT 10;
SELECT student_id FROM `students` WHERE year_of_birth=1952 LIMIT 10;
SELECT student_id FROM `students` WHERE year_of_birth=1953 LIMIT 10;
(and so on)
Run Code Online (Sandbox Code Playgroud)

但那将是非常耗时的还有其他选择谢谢

Jør*_*ode 2

如果您担心查询将返回多个结果集,您可以UNION ALL在每个结果集之间添加一个SELECT

SELECT student_id FROM `students` WHERE year_of_birth=1950 LIMIT 10
UNION ALL
SELECT student_id FROM `students` WHERE year_of_birth=1951 LIMIT 10
UNION ALL
...
Run Code Online (Sandbox Code Playgroud)

这当然可以与 alexn 从年份数组生成查询的方法相结合。

认为这会给你带来比单独查询更好的性能,但它可能(在 MySQL 的未来版本中),因为它为数据库引擎提供了更多关于你正在做什么的信息。