例如,表x有9条记录
x = 5
我查询:
Select * From `x` LIMIT 0,5
//我需要来自此查询和行集计数的数据。
//变量计数 - 存储第一个查询返回的行数
当第一个查询行集小于5行时,则
我从表z
创建新查询 Select * From `z` Limit 0,(5 - count)
--------------------------------
欺骗FOUND_ROWS无法正常工作。
--------------------------------
问题:
如何在Store过程/函数(MySQL)中执行此操作?
如何从一个查询中获取第一个查询(行集和返回的行数)?
--------------------------------
目标:
下班后功能应该返回
行集的总和(查询1和2)。
或
rowset query 1
答案 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;