Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:获取指定名称的最大值_Mysql - Fatal编程技术网

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

MySQL:获取指定名称的最大值,mysql,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

我有一张桌子:

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\u fetch\u数组的第一行。 但是想象一下mysql_fetch数组中的行有多少

是的,我的代码不是错的,但它不够“复杂”,因为它获取了很多行,有人能给出一个解决方案吗?
谢谢^^

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

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

“想象一下mysql\u fetch数组中有多少行”是什么意思?是的,我将查询结果提取到mysql\u fetch\u数组中(我使用php);在上面的示例中,只有3行,但在实际数据库中,可能需要很多行。谢谢,^^。我很抱歉,因为忘了它。顺便说一句,它必须是顺序的数学描述,历史描述限制1