SQL LIMIT关键字:确保包含特定结果

时间:2017-04-13 14:31:45

标签: sql limit

我需要按照

的方式编写SQL预取器
SELECT * WHERE id == x OR id >= y LIMIT 100 FROM ...

我需要包含结果id == x,而其他结果只是奖金。这可能吗?如果没有,我在想如果id被排序,并且返回的结果在它们的排序中,我仍然可以以保证包含id == x的方式进行查询。但可能很棘手。

编辑:所以答案(来自rbm)是这样的:

(SELECT * WHERE id == x)
UNION
(SELECT * WHERE id > y LIMIT 100) 

注意:我可能有+ -1个结果

2 个答案:

答案 0 :(得分:2)

如果您需要包含id = x,请执行以下操作:

'((h i)(h e l l o))

答案 1 :(得分:1)

After putting it to SQL syntax, it would look like :

SELECT *
FROM ...
WHERE id = x OR id >= y
ORDER BY CASE WHEN id = x THEN 0 ELSE 1 END ASC
LIMIT 100

EDIT : Reminder: Limit is applied after order.