如何检查mysql中是否使用了限制?

时间:2015-03-11 19:25:21

标签: php mysql sql

在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()

由于

3 个答案:

答案 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
相关问题