如果我有一个像
这样的示例表id || value_a
我想选择5个条目,其中value_a = 1。 到目前为止非常简单,但现在如果结果少于5,我想仍然有5个结果。因此,如果有3个条目的value_a = 1,那么我想得到那3个结果和2个其他的值,其中value_a可以是任何东西。我怎样才能以最好的方式实现这一目标?
答案 0 :(得分:4)
您可以通过比较计算的结果进行排序,如下所示:
SELECT stuff FROM table ORDER BY (value_a = 'value you want') DESC LIMIT 5
答案 1 :(得分:1)
(
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
上的索引