删除group_concat中包含“XXX”的项目

时间:2017-01-26 19:34:00

标签: mysql sql

我正在尝试进行group_concat,但我只想返回在分组中具有特定值的项目。

select id, name, group_concat(tag_name) as tags
from base_table
left join tags_table on base_tabe.id = tags_table.base_table_id
group by base_table.id

然后我可以得到这样的东西:

id   name           tags
----------------------------------
1    Some Name 1    tag1,tag2,tag3
2    Some Name 2    tag1,tag4,tag5
3    Some Name 3    tag5

我想将其过滤为只有tag1作为标记的项目,在这种情况下,我将不再拥有此示例中的第3行。

我唯一能想到的就是使用这样的东西:

having tags like '%tag1%'

然而,这会抓住单词中间的内容,然后将这些内容过滤掉。

1 个答案:

答案 0 :(得分:3)

使用find_in_set函数以逗号分隔文本

搜索值
Having find_in_set('tag1', tags_column) > 0
相关问题