我有一个表问题,列 question_id,question_title 和 question_topic(c或java)。如何编写一个返回所有' c'问题
但是,如果' c'问题少于5,我还包括' java'问题,以便结果总数最多为10个。
答案 0 :(得分:2)
试试这个:
select * from questions where question_topic = 'c'
union
select * from questions where question_topic in ("c","java") order by question_type limit 10;
第一个选择为您提供所有C问题,第二个选择为您提供第一个。当您结合时,您不会得到重复
答案 1 :(得分:0)
对于您的特定情况,这应该足够了
SELECT * FROM questions ORDER BY question_topic LIMIT 10;
基本上按照主题按字母顺序排序,得到前10个结果。
答案 2 :(得分:0)
您可以按问题类型排序。 ' C'将会出现在java'之前。所以这个查询应该返回你想要的东西:
select * from questions where question_topic in ("c","java") order by question_type limit 10;
如果有10个C'问题,你会得到它们。否则,10的余额将由java填补。