PHP MySQL计数结果和IF即所有结果

时间:2011-02-28 00:53:57

标签: php mysql performance

我正在查询数据库以返回一个简单的数组。 IE:“SELECT * FROM contacts LIMIT 50”

但我想弄清楚的是,如果用户只有10个联系人怎么办?我想表示一个回复说(10个中的10个)联系人。

我知道我可以在数据库上运行2个查询, 一个。 SELECT * FROM contacts(然后计算结果) 湾SELECT * FROM contacts(然后找出A和B的差异

但问题在于用户有2,000个联系人并不罕见。每次用户选择“联系人”页面时,都会查询数据库。

那么有更简单的方法吗?还是我走在正确的轨道上?

任何光都会受到赞赏。 欢呼声。

3 个答案:

答案 0 :(得分:1)

您可以运行SELECT COUNT(*) FROM contacts来获取联系人总数。另一个解决方案 -

SELECT  SQL_CALC_FOUND_ROWS * from contacts limit 50;// get up to 50 records
SELECT FOUND_ROWS(); // returns the number of rows in contact

答案 1 :(得分:1)

另一种方法

select *,
     (select count(*) from table) as `found`,
     (select 10 - count(*) from table) as missing
from table limit 10

答案 2 :(得分:0)

您好,您可以查询“从联系人中选择*”,然后根据您的页面限制显示记录(例如50)。所以你也有完整的记录。

OR

您可以执行以下操作来获取表格中的记录数

SELECT COUNT(*) FROM CONTACTS

查询“SELECT * FROM contacts LIMIT 50”

此致