MySQL:获取指定名称的最大值

时间:2012-07-24 08:15:33

标签: mysql

我有一张桌子可供选择:

name | math   | history  | status  
-----------------------------
jon  |   80   |   90     | 1  
alex |   90   |   70     | 1  
alex |   87   |   80     | 1  
jon  |   78   |   80     | 0  
alex |   90   |   60     | 1  
jon  |   30   |   100    | 0  
emile|   99   |   89     | 0  

我想要做的是获取一行name = alex,status = 1并且具有math的最大值,然后是满足的行的历史记录。所以结果将是

alex |   90   |   70     | 1  

我尝试的代码如下:

select * from sometable where (name=$name and status=1) order by math DESC, history DESC

我得到了我的期望,因为我只能获得mysql_fetch_array的第一行。 但想象一下mysql_fetch数组中的行数。

是的,我的代码不是假的,但这还不够"复杂的"因为它获取了很多行,任何人都可以提供解决方案吗? 谢谢。 ^^

1 个答案:

答案 0 :(得分:1)

只要您只需要一行 - 使用LIMIT 1子句:

  SELECT *
    FROM tblname
   WHERE name = 'alex'
     AND status = 1
ORDER BY math DESC
   LIMIT 1