gpt4 book ai didi

mysql - 如何获取从此查询中以逗​​号分隔的所有类别

转载 作者:行者123 更新时间:2023-11-29 10:39:54 26 4
gpt4 key购买 nike

我有两个表帖子,类别。在帖子表中,我将类别值存储为逗号分隔的字符串,如 5,8,23,7。在显示帖子时,我只想将帖子类别显示为逗号分隔,例如 Flower, Birds, Animals。所以我尝试了一些查询,但没有任何帮助我得到它。帖子表示例。

ID  Post title      categories
3 Example Post 5,7,23,8

类别表将是这样的

ID   name  
5 Flowers
7 Animals
8 Birds
23 Naturals

我想要这样的结果

ID  Post Tile        Category
3 Example Post Flowers, Animals, Birds

为此,我尝试了这个查询,但没有帮助我得到它。

SELECT post.ID, post.Post_title, (SELECT cat.name FROM Categories as cat WHERE cat.ID IN (post.category)) AS Categories FROM Posts as post 

它只返回一个类别,它只检索第一个类别名称。

最佳答案

如果您只是必须使用该架构,您可以尝试如下操作:

select P.ID, P.Title, (
select group_concat(C.name SEPARATOR ', ')
from Categories C
where LOCATE(CONCAT(C.ID, ','), P.categories) > 0
or LOCATE(CONCAT(', ', C.ID), P.categories) > 0
) as categories
from Post P;

这很棘手,因为在逗号分隔的列表中,值要么出现在逗号之前,要么出现在逗号之后,同时考虑到列表开头或结尾的值。您不能只使用直接子字符串,否则您将获得与“类别”值“1, 2, 555”相匹配的类别 ID 5。

关于mysql - 如何获取从此查询中以逗​​号分隔的所有类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45686494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com