Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

verificando o valor na árvore de n profundidade?


Se conjuntos aninhados não são uma opção, eu sei sobre o seguinte:
  • Se os dados forem ordenados de forma que os filhos de um pai sempre sigam depois do pai, você poderá resolver isso com uma consulta de banco de dados sobre todos os dados, ignorando os nós ocultos na saída.

Isso também funciona com um conjunto aninhado classificado. O princípio foi descrito em esta resposta no entanto, os algoritmos sobre como obter a profundidade não funcionam e eu sugiro um iterador recursivo que é capaz de remover itens ocultos.

Além disso, se os dados não estiverem ordenados, você poderá criar uma estrutura de árvore a partir da consulta (não classificada) de todas as linhas, conforme descrito em a resposta para Matriz aninhada. O terceiro nível está desaparecendo . Nenhuma recursão é necessária e você obtém uma estrutura que pode gerar facilmente, eu deveria ter coberto isso para <ul>/<li> saída de estilo html em outra resposta também.