Пока я тестировал, позиции все слетели, от старого кода. И в итоге при обновлении нужно было все главы дергать поочередно, чтобы встали как нужно.Ну так восстановите из бэкапа, какие проблемы-то?
Можно ли прямо в запросе пересобрать позиции?Это совсем другая задача, которую должен решать совсем другой запрос. Интегрировать одно в другое более чем неразумно. Тем более что одна операция мнится регулярной, тогда как другая явно одноразовая.
Можете тогда дополнить в конце моим кодом в ответе.Мой ответ скорее демонстрирует принцип, чем даёт решение. Потому дополнение его кодом под конкретную ситуацию считаю неуместным. Но ничто не мешает Вам дать свой ответ на вопрос, со своим итоговым кодом.
получается, что все в одноранговой сети.
Есть таблица с кривыми кириллическими названиями в непонятной кодировке.
как я узнаю где он повредился?
кто за это отвечает тогда?
Мне провайдер отказался менять.
Какое еще ЭТО поле?
Записей со значением parent_id одним и тем же может быть несколько. Но надо выбрать только те записи, в которых это поле максимальное.
по бд выходит что то такое
Приоритетом должны быть корректность кода и его производительность (ну, может, ещё количество потребляемых на его выполнение ресурсов). Если для получения нормальной скорости работы нужно превратить компактный запрос в многоэтажное безобразие - это нужно делать. Просто комментариев уйдёт больше.
А фильтры никак не соотносятся с этой задачей. Повторите их в каждом запросе.
Если же Вы имеете в виду не фильтры отбора записей, а селекторы выводимой информации - то для каждого набора будет свой запрос.