0

我有一张桌子:

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 并且具有数学最大值的行,然后是满足的行的历史记录。所以结果将是

alex |   90   |   70     | 1  

我尝试如下代码:

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

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

是的,我的代码不是假的,但它不够“复杂”,因为它获取很多行,有人可以给出解决方案吗?谢谢。^^

4

1 回答 1

1

只要您只需要一行 - useLIMIT 1子句:

  SELECT *
    FROM tblname
   WHERE name = 'alex'
     AND status = 1
ORDER BY math DESC
   LIMIT 1
于 2012-07-24T08:17:26.260 回答