如何限制此 MySQL 查询的结果数

How to limit the number of results of this MySQL query

我有一个 table 问题 ,包含列 question_id、question_titlequestion_topic(c 或 java)。如何编写 returns 所有 'c' 个问题的查询?

但是,如果 'c' 个问题的数量少于 5 个,我也会包括 'java' 个问题,这样结果总数最多为 10 个。

对于您的具体情况,这应该足够了

SELECT * FROM questions ORDER BY question_topic LIMIT 10;

基本上是根据主题按字母顺序排序,并获得前 10 个结果。

您可以按问题类型排序。 'C' 会排在 'java' 之前。所以这个查询应该 return 你想要什么:

select * from questions where question_topic in ("c","java") order by question_type limit 10;

如果有 10 'C' 个问题,您将全部答对。否则,10 的余额将由 java.

填充

试试这个:

select * from questions where question_topic = 'c'
union
select * from questions where question_topic in ("c","java") order by question_type limit 10;

第一个 select 给你所有的 C 问题,第二个给你前 10 个。当你并集时,你不会得到重复的