任何人都可以帮我找到计算运行查询时找到的行数的方法。我想在存储过程中运行此查询,具体取决于我想要执行某些操作的计数。 我试图将变量值设置为。
Select abc_master_id,
abc_name,
abc_parent_id,
(@row := @row +1) rownum
from abc_master
where blah.. blah.. limit 18,9
以上查询完全错误。但是在这里我想要计算或设置一些标志,发现记录小于或等于限制设置为查询,即此处。通过执行此操作,我将保存一个查询以计算查询提取的行。
我尝试过使用SQL_CALC_FOUND_ROWS和Found_rows()但是如果查询没有限制运行,它会给我总行数。
答案 0 :(得分:3)
解决方案:
SELECT abc_master_id,
abc_name,
abc_parent_id,
@i:=@i+1 AS rownum
FROM abc_master ,(SELECT @i:=0) foo
where blah.. blah.. limit 18,9
答案 1 :(得分:1)
将您的查询替换为类似的
Select count(*)
from abc_master where blah.. blah..
并获取第一行。
多年来Mysql已有所改进,但我不知道你的引擎是否支持更简单的子查询:
select count(*) from (
Select abc_master_id, abc_name, abc_parent_id ... from abc_master
where blah.. blah..)
因此:您的原始查询但没有限制条款,在parens之间。