1
,如果我有一個像Mysql的WHERE可選
id || value_a
我要選擇5項,其中value_a = 1 很簡單,到目前爲止,但現在如果有比5的結果少了,我想一個示例表仍然有5個結果。所以如果有3個條目的value_a = 1,那麼我想要得到3個結果和2個其他值,其中value_a可以是任何值。我怎樣才能以最好的方式實現這一目標?
,如果我有一個像Mysql的WHERE可選
id || value_a
我要選擇5項,其中value_a = 1 很簡單,到目前爲止,但現在如果有比5的結果少了,我想一個示例表仍然有5個結果。所以如果有3個條目的value_a = 1,那麼我想要得到3個結果和2個其他值,其中value_a可以是任何值。我怎樣才能以最好的方式實現這一目標?
您可以通過比較計算的結果排序,像這樣:
SELECT stuff FROM table ORDER BY (value_a = 'value you want') DESC LIMIT 5
(
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
有效
非常好的使用索引!工作正常,現在不能接受答案,它告訴我,我必須等待8分鐘,但會做。 – Flo 2011-04-13 15:09:19