можете да създадете mysql функция, за да получите ниво на запис, след което да я извикате във вашата заявка. Входът на функцията ще бъде идентификаторът на записа, а извежданият номер на нивото. Функцията ще бъде така
DELIMITER $$
DROP FUNCTION IF EXISTS `getlevel` $$
CREATE FUNCTION `get_level`(Id int(11)) RETURNS int(11)
DETERMINISTIC
BEGIN
DECLARE levelNumber int(11); -- declare variable to record level
DECLARE parent int(11); -- declare variable to hold the parent id
set levelNumber = 0; -- set the level to zero at the begining
set parent = (select `relation_column` from `table` where `id_column` = Id); -- get parent record of then id givin to function
while parent > 0 DO -- loop unitl parent = 0 or record has no parent
set levelNumber = levelNumber + 1; -- increase level by 1
set parent = (select `relation_column` from `table` where `id_column` = parent); -- re set parent id
END
WHILE;
return levelNumber; -- return then level number
END$$
DELIMITER ;
relation_column е колоната, която съдържа релация на запис. id_column е колоната, която съдържа идентификатора на записа или (първичен ключ).
крайната заявка ще бъде така
select `table`.`id_column`,`table`.`relation_column`,`table`.`name`,get_level(`table`.`id_column`) as "level" from `table`
надявам се това да помогне