在mysql查询中,我有像我选择和订购的东西,并使用where子句等...,最后我有limit 10
例如。像这样:
Select *
From employee
where fired=0
limit 10
问题是,我怎么知道是否使用了限制并且结果被截断了?基本上我想知道是否有更多的结果从limit
切断。我不想做像
Select (count *)
From employee
where fired=0
减法
Select (count *)
From employee
where fired=0
limit 10
有一个简单的方法吗?也许,就像你知道如何运行一个insert语句后,你可以使用内置函数get_sql_id()
的php获取id(类似的东西),是否有sql_count_without_limit()
?
由于
答案 0 :(得分:3)
你可以做到
Select *
From employee
where fired=0
limit 10+1
那样:
0-10 values returned: no limit was reached
11 values returned: Limit was reached
然后只使用返回的前10个值。
更新雷蒙德的回答比我的好得多!
答案 1 :(得分:1)
您可以像这样使用found_rows函数:
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
-> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();
有关详细信息,请参阅mysql reference
答案 2 :(得分:1)
您可以将剩余的行作为列返回,如下所示
SET @limit = 10;
SELECT *,
(SELECT count(*) from employee)- @limit as remaining
From employee
where fired=0
limit 10