我有一个查询
SELECT
count(*) as count
from matches
WHERE team1 = 9
ORDER BY data DESC, id ASC LIMIT 10
我应该期待的最大结果不应该是10?我结果是15,我做错了吗?
答案 0 :(得分:2)
您需要在内部选择中执行限制。
select count(*) from
(select * from matches WHERE team1 = 9 ORDER BY data DESC, id ASC LIMIT 10) ten_rows
答案 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