У меня проблема с MYSQL. SQL_CALC_FOUND_ROWS и FOUND_ROWS() работают некорректно.MYSQL. SQL_CALC_FOUND_ROWS и FOUND_ROWS() работают некорректно
Издание:
- первый раз совокупный доход 1
- второй раз общий возвращает правильный номер версии 3.500
MYSQL:
MySQL Вер 14.14 Distrib 5.7. 10, для osx10.9 (x86_64) с использованием обертки EditLine
Я пытаюсь вернуть список из таблиц, а другой столбец в этом списке будет повторяться для каждой строки. (содержащий полные строки для выбора).
Таким образом, я могу получить все данные и общее число строк в одном выберите ...
Выберите ниже.
SELECT SQL_NO_CACHE SQL_CALC_FOUND_ROWS * FROM
(SELECT A.MEMBER_ID, A.USERNAME, B.ZIP, B.INTERESTS, C.ADDRESS
FROM MEMBER A, DATA B, ADDRESS C
WHERE A.GENDER = "F"
AND A.MEMBER_ID = B.MEMBER_ID
AND A.MEMBER_ID = C.MEMBER_ID
AND UPPER (A.CANCEL_FLAG) = "N"
ORDER BY A.LAST_LOGIN_DATE DESC) res,
(select FOUND_ROWS() as "total_result" from dual) tot
Limit 1, 15
1.) Является ли ORDER BY правильно на внутренний SELECT, или если закрытие ")" перед ORDER BY? 2.) У вас есть немного больше информации о типе и структуре таблиц? – sebkrueger
зачем ему закрывать ")" перед ORDER BY? 2.) Таблицы являются основными таблицами. Я не думаю, что в них есть что-то особенное. Я просто пытаюсь вернуть список из таблицы и другой столбец, который будет повторяться для каждой строки .., содержащий полные строки ... Таким образом, я могу получить все данные и полные строки в одном select ... – philipfwilson
'select FOUND_ROWS() 'сообщает вам количество строк, найденных последним, а не текущим. Итак, вы видите ожидаемый результат. –