Использование SQL_CALC_FOUND_ROWS в подзапросе - PullRequest
1 голос
/ 06 сентября 2011

Я считаю, что MySQL возвращает

Incorrect usage/placement of 'SQL_CALC_FOUND_ROWS'

ошибка, если я помещаю SQL_CALC_FOUND_ROWS в подзапрос

SELECT
  *
FROM
  (
     SELECT SQL_CALC_FOUND_ROWS * FROM test_table
  ) as T1

Есть ли обходной путь для этого? или я просто неправильно это реализую?

РЕДАКТИРОВАТЬ: Есть причина, по которой мне нужно сделать T1 подзапросом, если кому-то интересно.

1 Ответ

1 голос
/ 06 сентября 2011

Кажется, вы используете его неправильно. SQL_CALC_ROWS_FOUND, кажется, применяется только к внешним запросам. Я не уверен, подходит ли это вашему варианту использования или если у вас есть дополнительные WHERE в вашем внешнем запросе, но вы можете сделать что-то вроде этого:

ВЫБРАТЬ SQL_CALC_FOUND_ROWS * ОТ ( SELECT * FROM test_table ) как T1;
SELECT FOUND_ROWS ();

Функция FOUND_ROWS() выдаст вам общее количество строк, найденных до применения LIMIT s. Подробнее о FOUND_ROWS() проверьте здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...