mysql - How to get All categories comma separated from this query -
i have 2 tables posts, categories. here in posts table stored category values comma separated string 5,8,23,7. while displaying posts, want show post categories comma separated flower, birds, animals. tried queries nothing helped me it. posts table example.
id post title categories 3 example post 5,7,23,8 and categories table this
id name 5 flowers 7 animals 8 birds 23 naturals and want result
id post tile category 3 example post flowers, animals, birds for tried query didn't me .
select post.id, post.post_title, (select cat.name categories cat cat.id in (post.category)) categories posts post and returns 1 category, retrieves first category name only.
edit: updated consider fact posts.categories csv value.
you need use group_concat() function, , trick posted in sql split comma separated row in order split join csv , create output csv:
select posts.id, posts.post_title, group_concat(categories.name separator ',') `category` posts inner join categories on categories.id in ( select substring_index(substring_index(posts.categories, ',', n.n), ',', -1) value ( select a.n + b.n * 10 + 1 n (select 0 n union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) ,(select 0 n union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) b order n ) n n.n <= 1 + (length(posts.categories) - length(replace(posts.categories, ',', ''))) order value ) group posts.id, posts.post_title
Comments
Post a Comment