Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment fusionner les données de plusieurs colonnes en une seule ? [Requête de modèle de liste de contiguïté]

Comme vous l'avez dit, vous pouvez utiliser un UNION sur le résultat de votre requête. Dans le reste de la réponse, je vais vous montrer une solution utilisant CTE, qui est une syntaxe SQL standard disponible dans de nombreux systèmes, mais malheureusement pas dans MySQL. Cependant, pour convertir cette requête pour MySQL, vous pouvez consulter la réponse suivante :Comment utiliser la clause "WITH" dans MySQL ?

WITH query AS (
  SELECT t1.categoryid AS lev1, t2.categoryid as lev2, t3.categoryid as lev3, t4.categoryid as lev4
  FROM category AS t1
  LEFT JOIN category AS t2 ON t2.parent = t1.categoryid
  LEFT JOIN category AS t3 ON t3.parent = t2.categoryid
  LEFT JOIN category AS t4 ON t4.parent = t3.categoryid
  WHERE t1.categoryid = 4149418031)
SELECT lev1 AS category_value FROM query
  UNION
SELECT lev2 AS category_value FROM query
  UNION
SELECT lev3 AS category_value FROM query
  UNION
SELECT lev4 AS category_value FROM query;