2011-04-20 157 views
2

我想要一個查詢從表中返回最佳結果。mySQL - 返回最佳結果

我定義了最好的結果是在添加兩列的A + B(各列保持一個int)

即:

entry a b 
1  4 5 
2  3 2 
3  20 30 

條目3將被返回,因爲a + b爲在這種情況下最高。

有沒有辦法做到這一點?我的一個想法是在表格中創建另一列,其中包含a和b的加法,然後是DESC的ORDER,但這看起來有點雜亂。

任何想法? 謝謝!

回答

5
SELECT * 
FROM mytable 
ORDER BY 
     a + b DESC 
LIMIT 1 

但是,添加另一列將是一個不錯的選擇,因爲您可以索引此列以改善查詢。

+0

一個有趣的選擇是將列'a'和列'a + b'但不是'b'列。然後,您將通過'a + b - a'檢索'b'並且沒有冗餘。這會有什麼重大影響嗎? – 2011-04-20 15:41:48

+0

@lasseespeholt:如果@op需要一個,則不可能在'b'上創建一個索引。 – Quassnoi 2011-04-20 15:42:51