想请教下有没有什么办法可以快速返回一个sql Query 返回的行数
这个Query中会有join,会有group by现用的方法是将select部分替换成 SELECT 1
其余join和group by不变,然后获取row count
但不知道是不是真的在速度上会快
有没有什么好的方法

解决方案 »

  1.   

    直接 select count(*) from ....
      

  2.   

    FOUND_ROWS() 
    A SELECT语句可能包括一个 LIMIT 子句,用来限制服务器返回客户端的行数。在有些情况下,需要不用再次运行该语句而得知在没有LIMIT 时到底该语句返回了多少行。为了知道这个行数, 包括在SELECT 语句中选择  SQL_CALC_FOUND_ROWS ,随后调用 FOUND_ROWS() :
      

  3.   

    ROW_COUNT() 
    ROW_COUNT()返回被前面语句升级的、插入的或删除的行数。 这个行数和 mysql 客户端显示的行数及 mysql_affected_rows() C API 函数返回的值相同。
      

  4.   

    1、FOUND_ROWS() 
    SELECT * FROM TT;
    SELECT FOUND_ROWS() ;
    2、SELECT COUNT(*) FROM TT
      

  5.   


    SELECT ...... ;
    IF FOUND_ROWS() = 0 THEN
    ......
    END IF;