Requêtes récursives dans SQLite3 : un guide complet
Bien que SQLite3 ait historiquement manqué de prise en charge des requêtes récursives, des progrès récents ont introduit cette fonctionnalité avec le introduction d'expressions de table communes (CTE) dans la version 3.8.3.
Avec CTE récursifs (SQLite 3.8.3 ou supérieur)
SQLite3 propose désormais l'instruction WITH, qui permet la définition de CTE récursifs. À l'aide d'un CTE récursif, vous pouvez facilement effectuer des requêtes récursives :
WITH RECURSIVE Subparts AS ( SELECT Part, SuperPart FROM Part WHERE SuperPart IS NULL UNION SELECT Part, SuperPart FROM Subparts JOIN Part ON Subparts.SuperPart = Part.Part ) SELECT * FROM Subparts;
Requêtes récursives dans les versions antérieures de SQLite3
Avant la version 3.8.3, SQLite3 ne prenait pas en charge requêtes récursives. Cependant, une solution de contournement existe en implémentant la récursivité dans le code client :
SELECT Part, SuperPart FROM Part WHERE SuperPart IS NULL;
SELECT Part, SuperPart FROM Part WHERE SuperPart IN (sub-part IDs from previous step);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!