Mysql算不行?

时间:2013-11-13 05:12:58

标签: mysql

我有一个查询

SELECT 
count(*) as count 
from matches 
WHERE team1 = 9 
ORDER BY data DESC, id ASC LIMIT 10

我应该期待的最大结果不应该是10?我结果是15,我做错了吗?

4 个答案:

答案 0 :(得分:2)

您需要在内部选择中执行限制。

select count(*) from
(select * from matches WHERE team1 = 9 ORDER BY data DESC, id ASC LIMIT 10) ten_rows

sql fiddle

答案 1 :(得分:1)

LIMIT 10子句在查询的SELECT ...部分之后应用。因此,在应用LIMIT 10之前,它会计算行并将该数字放入一行。

如果您使用API​​并询问结果集中有多少行,那么您确实会从查询SELECT * FROM ... LIMIT 10获得10的回复。

答案 2 :(得分:1)

您只是得到count值,limit不适用于您计算行数。

使用LIMIT,您不会限制计数或总和,只会限制返回的行。

换句话说,它从表中计算no.of记录并作为单行返回。您选择的查询匹配行数 15

答案 3 :(得分:0)

尝试使用它,

SELECT 
COUNT(*) AS COUNT 
FROM matches 
WHERE team1 = 9 
ORDER BY DATA DESC, id ASC