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