Mysql FOUND_ROWS с заявлением HAVING

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

Я выполняю большой запрос, включающий несколько фильтров и JOIN, а также разбиваю на страницы результаты, поэтому запрос выполнялся дважды.

Я пытался с помощью SQL_CALC_FOUND_ROWS чтобы избежать выполнения запроса дважды, но так как я фильтрую с HAVING Заявления я получаю нефильтрованную сумму, перед «имеющим заявление». Мне нужно запустить HAVING так как исходный запрос основан на подсчете материала — я знаю, что это ужасно, но у меня нет прав на изменение структуры БД прямо сейчас.

Идея моего SQL:

SELECT SQL_CALC_FOUND_ROWS u.id as user_id,
u.full_name as full_name,
u.email as email,
COUNT(stuff) as logs,
FROM
user u
LEFT JOIN
profile u_p on u_p.user_id = u.id
GROUP BY u.id
HAVING logs>5
LIMIT 15

когда я запускаю новый запрос SQL
SELECT FOUND_ROWS() as total_rows Я получаю полную сумму u.id Ряды а не отфильтрованные. (Это происходит только с HAVING заявление, а не WHERE оговорка)

1

Решение

Как оказалось, похоже, что код работает как задумано. Это была просто проблема отладки. Извините за беспокойство!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]