MySQL,如何从查询(谁使用LIMIT)获得返回行数和保存行集。 (存储过程/函数)和行集语句的数量

时间:2012-12-15 11:44:28

标签: mysql stored-procedures count rowset

例如,表x有9条记录

x = 5

我查询:

 Select * From `x` LIMIT 0,5

//我需要来自此查询和行集计数的数据。

//变量计数 - 存储第一个查询返回的行数

当第一个查询行集小于5行时,则

我从表z

创建新查询
  Select * From `z` Limit 0,(5 - count)

  --------------------------------

欺骗FOUND_ROWS无法正常工作。

http://pastebin.com/1kKD0wqC

  --------------------------------

问题:

如何在Store过程/函数(MySQL)中执行此操作?

如何从一个查询中获取第一个查询(行集和返回的行数)?

  --------------------------------

目标:

下班后功能应该返回

行集的总和(查询1和2)。

rowset query 1

2 个答案:

答案 0 :(得分:0)

Select * From `z` Limit 0,(5 - (SELECT COUNT(*) FROM `x` LIMIT 0,5))

没有检查它是否有效但它应该。我参考手册:http://dev.mysql.com/doc/refman/5.0/en/subqueries.html

答案 1 :(得分:0)

我找到了解决方案:

MySQL(商店程序的内容):

Set @tmp = 0;
Select `field_1`, `field_2` From `table_1` Where @tmp := @tmp + 1 LIMIT 0 ,5;

//我们有行集和会话变量(@tmp) - 返回的行数


@TIP

 @tmp := @tmp + 1

必须在所有条件之前。

例如:

[.....] Where @tmp := @tmp + 1 And `field_2` > 1 LIMIT 0, 5;

将永远返回1 ...


正确版本

[.....] Where `field_2` > 1 And  [Other conditions] And @tmp := @tmp + 1  LIMIT 0, 5;