2011-12-08 3 views
1

phpmyadmin에서 다음 MySQL 쿼리를 수행하고 있습니다. found_rows() 함수는 결과를 반환하지 않습니다.MYSQL found 행이 phpmyadmin에서 작동하지 않습니다.

SELECT SQL_CALC_FOUND_ROWS `name` , `ability` 
FROM `magic` 
WHERE `name` LIKE 'Black%' 
GROUP BY `name` 
ORDER BY `name` 
LIMIT 0 , 10; 
SELECT FOUND_ROWS(); 

Select 쿼리를 차례대로 실행하려고 시도했지만 예상치 못한 결과가 발생했습니다. 첫 번째 쿼리만으로도 13 개의 결과가 반환되며 이는 올바른 합계입니다. 나중에 found_rows() 쿼리를 실행하면 20이 반환됩니다.

어떻게보고하면 Found_rows()를 얻을 수 있습니까?

덕분에, 는 phpMyAdmin에에,

답변

6

당신은 할 수 없습니다를 skibulk.

PHPMyAdmin은 FOUND_ROWS() 그 자체를 사용하여 마지막 쿼리에서 몇 행이 발견되었는지를 알려주고이 결과를 'x 결과를 찾았습니다'라고 말합니다.

간단한 SELECT을 실행할 때마다 PHPMyAdmin이 한도를 더하고이 선택을 실행하고 나중에 FOUND_ROWS를 실행하여 LIMIT없이 몇 개의 결과를 찾았는지 알려줍니다. 이것은 PHPMyAdmin이 페이징을 제공하는 방법입니다 (기본적으로 30 개 요소).

더하기, FOUND_ROWS()을 두 번 호출 할 수 없습니다. 두 번째로 전화하면 두 번째 전화는 처음 전화 한 것을 나타냅니다. 처음으로 1 행을 반환하므로 결과로 1을 얻습니다.

참고 : 기본적으로 PHPMyAdmin에 입력 한 각 쿼리는 MySQL에 대한 새로운 연결을 열고 쿼리를 실행 한 다음 연결을 닫습니다. 입력 쿼리 영역에 세미콜론으로 구분하지 않으면 다음 쿼리에서 첫 번째 쿼리를 알 수 없습니다.

FOUND_ROWS()를 사용하려면 다른 mysql-client를 사용하십시오. mysql 명령 줄은 괜찮습니다.

mysql> SELECT SQL_CALC_FOUND_ROWS TABLE_NAME FROM `information_schema`.tables WHERE TABLE_NAME LIKE "COL%" LIMIT 3; 
+---------------------------------------+ 
| TABLE_NAME       | 
+---------------------------------------+ 
| COLLATIONS       | 
| COLLATION_CHARACTER_SET_APPLICABILITY | 
| COLUMNS        | 
+---------------------------------------+ 
3 rows in set (0.01 sec) 

mysql> SELECT FOUND_ROWS(); 
+---------------+ 
| FOUND_ROWS() | 
+---------------+ 
|    5 | 
+---------------+ 
1 row in set (0.00 sec) 
관련 문제