Сохраните весь «путь» от идентификатора корневого узла в отдельном столбце, обязательно используя разделитель в начале и конце. Например. скажем, 1 является родителем 5, который является родителем 17, а ваш символ-разделитель - тире, вы должны сохранить значение -1-5-17- в столбце пути.
Теперь, чтобы найти всех детей 5 лет, вы можете просто выбрать записи, путь к которым включает -5-
Разделители на концах необходимы, поэтому вам не нужно беспокоиться об идентификаторах, которые находятся в крайнем левом или правом конце поля при использовании LIKE.
Что касается вопроса о глубине, то если вы добавите в таблицу столбец глубины, в котором будет указана текущая глубина вложения, это также станет простым. Вы просматриваете глубину вашего начального узла и затем добавляете к нему x, где x - это количество уровней, по которым вы хотите выполнить поиск, и вы отфильтровываете записи с большей глубиной.