在具有不同条件的同一数据库上进行多选

时间:2017-04-09 10:38:10

标签: php mysql pagination

我有分页,我应该拨打两次数据库!
这意味着我应该打电话:

  

SELECT COUNT(users_id)FROM users

获取所有数据库rowCount
在另一个数据库fetch中我有:

  

SELECT * FROM users ORDER BY users_id ASC LIMIT 1,2

用于创建分页
无论如何要创建一个数据库调用并获得相同的结果?
我试试这个:

  

SELECT COUNT(users_id),* FROM users ORDER BY users_id ASC LIMIT 1,2

但是这个,只调用2(count users_id)并打破分页:(

感谢和抱歉我的英语不好。

2 个答案:

答案 0 :(得分:0)

不,这是不可能的,因为它返回不同的结果集 - 第一个查询返回带有int的单列结果,另一个查询返回用户的所有列。

您需要为此执行两个单独的查询。

答案 1 :(得分:0)

你可以通过2个查询得到这个:

1)首先使用LIMIT和OPTION SQL_CALC_FOUND_ROWS

获取结果

2)获取没有LIMIT的num行

SELECT SQL_CALC_FOUND_ROWS t.* FROM yourTable 1 LIMIT 2;
SELECT FOUND_ROWS(); 

<强>样品

mysql> SELECT SQL_CALC_FOUND_ROWS t.* FROM yourTable t LIMIT 2;
+-----+------------+
| id  | toDate     |
+-----+------------+
| 111 | 2017-03-02 |
| 111 | 2017-03-20 |
+-----+------------+
2 rows in set (0,00 sec)

mysql> SELECT FOUND_ROWS();
+--------------+
| FOUND_ROWS() |
+--------------+
|            4 |
+--------------+
1 row in set (0,00 sec)

mysql>