복붙노트

[SQL] 합니까 MySQL은 MSSQL처럼 @@ ROWCOUNT에 해당하는가?

SQL

합니까 MySQL은 MSSQL처럼 @@ ROWCOUNT에 해당하는가?

@@ ROWCOUNT는 MSSQL에서와 같이 어떻게 MySQL의에서 행 개수 값을받을 수 있나요?

해결법

  1. ==============================

    1.에 select를 들어 당신은 FOUND_ROWS 구조를 (여기 문서화)를 사용할 수 있습니다 :

    에 select를 들어 당신은 FOUND_ROWS 구조를 (여기 문서화)를 사용할 수 있습니다 :

    SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;
    SELECT FOUND_ROWS( ) ;
    

    이는 지난 SELECT 쿼리의 행 수를 반환합니다 (또는 첫 번째 쿼리가 LIMIT 절을 경우, 그것은 행 제한없이이 있었던 것의 수를 반환).

    UPDATE를 들어 / / INSERT 삭제, 그것은 ROW_COUNT 구조입니다

    INSERT INTO your_table VALUES (1,2,3);
    SELECT ROW_COUNT();
    

    어떤 영향을받는 행의 수를 반환합니다.

  2. ==============================

    2.

    mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
    
        -> WHERE id > 100 LIMIT 10;
    
    mysql> SELECT FOUND_ROWS();
    

    여기에 대해 자세히 알아보기

  3. ==============================

    3.가장 간단한 방법은 변수를 사용하는 것입니다 :

    가장 간단한 방법은 변수를 사용하는 것입니다 :

    mysql> SELECT @rowcount:=COUNT(*) FROM my_table;
    mysql> SELECT @rowcount;
    

    또는 당신은 FOUND_ROWS () SELECT 문에 SQL_CALC_FOUND_ROWS 퍼팅 후 구문을 사용할 수 있습니다.

    mysql> SELECT SQL_CALC_FOUND_ROWS * FROM my_table;
    mysql> SELECT FOUND_ROWS();
    
  4. ==============================

    4.또 다른 방법이있다 :

    또 다른 방법이있다 :

    CREATE TEMPORARY TABLE `results` AS ( *** Your query without LIMIT *** );
    

    행 수를 가져옵니다

    SELECT COUNT(*) FROM `results`;
    

    당신의 부분 집합을 받기

    SELECT * FROM `results` LIMIT 5,10;
    

    임시 테이블은 현재 세션에 존재합니다. 나는 아직도 청소 후 것

    DROP TEMPORARY TABLE `results`;
    
  5. from https://stackoverflow.com/questions/2229218/does-mysql-have-an-equivalent-to-rowcount-like-in-mssql by cc-by-sa and MIT license