Construire des méthodes de requête récursives dans mysql
MySQL fournit plusieurs méthodes pour créer des requêtes récursives. Voici plusieurs méthodes:
MySQL 8.0 et au-dessus des versions
WITH RECURSIVE
<code class="language-sql">WITH RECURSIVE cte (id, name, parent_id) AS ( SELECT id, name, parent_id FROM products WHERE parent_id = 19 UNION ALL SELECT p.id, p.name, p.parent_id FROM products p JOIN cte ON p.parent_id = cte.id ) SELECT * FROM cte;</code>
Méthode deux: l'identifiant de style de chemin
<code class="language-sql">SELECT id, name, parent_id FROM (SELECT * FROM products ORDER BY parent_id, id) products_sorted, (SELECT @pv := '19') initialisation WHERE FIND_IN_SET(parent_id, @pv) AND LENGTH(@pv := CONCAT(@pv, ',', id));</code>
Si votre structure hiérarchique est exprimée dans la forme dans la colonne ID, vous pouvez utiliser les requêtes suivantes:
Méthode trois: auto-connection
<code class="language-sql">SELECT * FROM products WHERE id LIKE '19/%';</code>
Choisissez la méthode qui répond le mieux à vos besoins et à la version MySQL.
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!