Смотрим, что будет.
Будет какая-то мистика. Если убрать последний запрос, будет всё без ошибок, выдаётся правильный ответ, все строки таблицы.Без ошибок также следующие варианты:
AND topic_visibility IN (0) AND topic_visibility IN ( 3) AND topic_visibility IN (1, 3) AND topic_visibility IN (0, 3, 1) AND topic_visibility IN (0, 1)
А варианты AND topic_visibility IN (0, 2) AND topic_visibility IN (0, 3) AND topic_visibility IN (0, 4) дают ошибку.
Отлично, теперь уменьшайте количество forum_id и без COUNT смотрите, что вам выводит БД. Если там меньше 100 строк то никаких проблем, если будет больше, значит что-то не так где-то.
Не так там что-то в планировании запроса, сервер как-то странно пытается "предвидеть" результат. Запрос
SELECT topic_id AS total FROM pb_topics WHERE forum_id IN (4, 5, 6, 7, 8, 11, 16, 17) AND topic_visibility IN (0, 3)
выдаёт ту же ошибку, а запрос
SELECT topic_id AS total FROM pb_topics WHERE forum_id IN (4, 5, 6, 7, 8, 11, 16) AND topic_visibility IN (0, 3)
или запрос
SELECT topic_id AS total FROM pb_topics WHERE forum_id IN (4, 5, 6, 7, 8, 11, 17) AND topic_visibility IN (0, 3)
завершаются успешно, и выдают результат 0 строк.
Какая версия Mysql и в каком формате БД?
MariaDB 10.5.12, таблицы InnoDB. COUNT(*) даёт ту же ошибку. Без COUNT тоже.
медианой за полгода было не 1%, порядка 25%
При чём здесь медиана, если пик был до того, как вакцинировались?
но даже если изнасиловать и натянуть сову на глобус и взять всего 1%, то 51000 против 256 означает, что вакцинированные умирают вдвое реже...
Не надо насиловать сову (а именно этим занимаются те, кто манипулирует данными за полгода). Лучше оперировать текущими данными, а они говорят совсем о другом, выше давали ссылки.
да нет, номера заказов здесь не причем)
А номера корзин "при чём"? То есть если покупатель видит номер заказа 1023, у него вопроса не возникает, почему такой номер, если он делает первый заказ, а по корзине возникает? По-моему, Вы что-то такое лишнее себе напридумывали.
Ну и потом скрипт должен отдать 404. Тогда старую страницу ПС выкидывает по причине 301, а новую не индексирует по причине 404.
RewriteRule ^адрес$ - [G,L]
или
RewriteRule ^адрес$ - [R=404,L]
Но вообще-то у вас что-то не так настроено, потому что при правильном постраничном редиректе на несуществующие страницы и без этих правил должен отдаваться ответ 404.
Чтобы вопросов таких не было: мол я только первый заказ делаю, а у меня пятая корзина откуда-то завелась. Это важно короче
Их не будет, этих вопросов, если номер будет 1023, например. Дураку понятно, что это общая нумерация в системе. Вы попробуйте что-то заказать в любом интернет-магазине, Вам придёт письмо типа "Ваш заказ №2389 сформирован и готов к отгрузке". Ни у кого вопросов не возникает.