Maison > base de données > tutoriel mysql > Comment construire une requête récursive dans MySQL: Méthodes pour les versions 5.x et 8?

Comment construire une requête récursive dans MySQL: Méthodes pour les versions 5.x et 8?

DDD
Libérer: 2025-01-25 16:06:12
original
498 Les gens l'ont consulté

How to Build a Recursive Query in MySQL: Methods for Versions 5.x and 8 ?

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

Pour les versions MySQL 8.0 et supérieures, vous pouvez utiliser

grammaire:

WITH RECURSIVE

MySQL 5.x Version
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;
Copier après la connexion

<一> Méthode 1: Évaluation des variables

<二> Méthode deux: l'identifiant de style de chemin

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));
Copier après la connexion

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

SELECT *
FROM products
WHERE id LIKE '19/%';
Copier après la connexion
Vous pouvez utiliser l'auto-connexion pour atteindre la récursivité:

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal