2011-04-20 137 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