Hello !
Je souhaiterais, en une seule requête, pouvoir mettre à jour la profondeur de chaque catégorie d’une table MySQL basée sur le modèle du nested trees.
Comment connaître la profondeur d’une catégorie donnée ?
Alors déjà ça j’ai réussi à trouver. Par définition, il suffit récupérer le nombre de niveaux qui sont enfants directs et indirects d’une catégorie donnée. Dans un nested tree, ça correspond donc à :
SELECT COUNT(*) FROM ma_table WHERE nleft < categorie_nleft AND nright > categorie_nright
auquel on ajoute 1 (pour avoir la profondeur). "categorie_" c’est la catégorie dont on veut savoir la profondeur.
Mais comment exécuter ça pour toute catégorie et dans le cadre d’un UPDATE ?
C’est là que je sèche. J’aimerais utiliser ce principe en une seule requête UPDATE
qui serait exécutée pour chaque entrée, sans procédure SQL ni rien.
Je pensais éventuellement à un INNER JOIN
mais je ne crois pas que ce soit la bonne piste.
Vous auriez qlq chose à me conseiller svp ?