-1

I have this MariaDB table "categories":

id  category        parent_id
1   electronics     0
2   fashion         0
3   TV              1
4   mobile          1
5   Sony            3
6   power bank      1
7   iphone          4

and I want result using MYSQL Query

1 electronics
3 electronics >> TV
5 electronics >> TV >> Sony
4 electronics >> Mobile
7 electronics >> Mobile >> iphone
6 electronics >> Power bank
2 fashion
Bill Karwin
  • 538,548
  • 86
  • 673
  • 828
Durairaj
  • 62
  • 1
  • 9

1 Answers1

0
WITH RECURSIVE
cte AS ( SELECT id, category, parent_id, category path
         FROM categories
         WHERE parent_id = 0
       UNION ALL
         SELECT c.id, c.category, c.parent_id, CONCAT(cte.path, ' > ', c.category)
         FROM categories c
         JOIN cte ON cte.id = c.parent_id )
SELECT * FROM cte;

https://dbfiddle.uk/?rdbms=mariadb_10.4&fiddle=d9d59ace66a91b6b95c14e31cd1f6d1b

Akina
  • 39,301
  • 5
  • 14
  • 25