У меня есть база данных MySQL (созданный Wordpress), и это похоже на то, как это выглядит:Подсчитайте родительские слова в одном SQL-запросе?
ID parentID otherStuff
54 55 this is a test
55 56 another test
56 0 last test
Что мне нужно сделать, это проверить, насколько глубоко вниз страницы. Я знаю, что когда он достигнет parentID 0, он закончен.
Я мог бы написать 3 запроса, а затем проверить, когда равно 0, но было бы более приятно, если это возможно только с одним запросом. Является ли это возможным? Как?
Вот пример:
- ID: 56 имеет родителя 0 и имеет глубину 0. (теперь 1 запрос)
- ID: 55 имеет родительский 56 затем 0 и имеет глубину 1. (Теперь 2 querys)
- ID: 54 имеет родителя 55 затем 56, то 0 и имеет глубины 2. (в настоящее время 3 querys)
я решил его "неправильный путь" (с одним запросом каждого уровня глубины) здесь get_depth()
Проблема в том, что это рекурсивная функция, и для каждой глубины требуется еще один запрос.
Иерархические запросы в MySQL: http://explainextended.com/2009/08/17/hierarchical-queries-in-mysql-varchar-keys/ –
Список вложений и вложенных наборов в MySQL: http://explainextended.com/2009/09/29/adjacency-list-vs-nested-sets-mysql/ –