bạn có thể tạo hàm mysql để nhận mức bản ghi sau đó gọi nó trong truy vấn của bạn. đầu vào hàm sẽ là id bản ghi và xuất ra số cấp. hàm sẽ như thế này
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 ;
cột_quan hệ là cột chứa quan hệ bản ghi. id_column là cột chứa id bản ghi hoặc (khóa chính).
truy vấn cuối cùng sẽ như thế này
select `table`.`id_column`,`table`.`relation_column`,`table`.`name`,get_level(`table`.`id_column`) as "level" from `table`
hy vọng điều này sẽ giúp ích