如果我有一个示例表,比如
id || value_a我想选择5个条目,其中value_a = 1。到目前为止非常简单,但是现在如果结果少于5个,我希望仍然有5个结果。因此,如果有3个条目的value_a = 1,那么我希望得到这3个结果和另外2个value_a可以是任何值的结果。我如何才能以最好的方式实现这一点?
发布于 2011-04-13 23:04:02
您可以按比较计算的结果进行排序,如下所示:
SELECT stuff FROM table ORDER BY (value_a = 'value you want') DESC LIMIT 5发布于 2011-04-13 23:05:44
(
SELECT *
FROM mytable
WHERE value_a = 1
LIMIT 5
)
UNION ALL
(
SELECT *
FROM mytable
WHERE value_a <> 1
LIMIT 5
)
ORDER BY
value_a = 1 DESC
LIMIT 5这将有效地使用value_a上的索引
https://stackoverflow.com/questions/5651365
复制相似问题