我有一张桌子可供选择:
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数组中的行数。
是的,我的代码不是假的,但这还不够"复杂的"因为它获取了很多行,任何人都可以提供解决方案吗? 谢谢。 ^^
答案 0 :(得分:1)
只要您只需要一行 - 使用LIMIT 1
子句:
SELECT *
FROM tblname
WHERE name = 'alex'
AND status = 1
ORDER BY math DESC
LIMIT 1