@sitev_ru
sitev.ru - мой блог ...

Какой запрос нужно написать, чтобы вывести уровень вложенности для пункта меню?

Табличка menu простая name, url, parent (название, куда переходить и родительский пункт меню)...

Какой запрос нужно написать, чтобы вывести ещё level - уровень вложенности для пункта меню?
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ответы на вопрос 3
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Ответ написан
Комментировать
select * from tbl_menu

далее цикл, в котором формируется структура данных, удобная для отображения
Ответ написан
Комментировать
@lod2007
Программист
Вот, лови. Тут синтаксис на Т-SQL, но под другую СУБД переделать легко. На хабре есть статья про рекурсию. там и про MySQL рекурсия показана.
go
with myrec (ProdName,id,idParent,levell) as
(
Select CONVERT(varchar(255), ProdName),id,idParent,0 from Products where idParent=-1
union ALL
Select CONVERT(varchar(255),d.ProdName+'\'+a.ProdName) as ProdName,a.id,a.idParent,levell+1 from Products a
inner join myrec d on d.id=a.idParent)

select b.ProdName as ProdName,b.id,b.idParent,levell from Products a
right join myrec b on a.id = b.idparent
where b.id=(select idparent from Products where id=35)

go
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы