2017-01-26 4 views
0

group_concatを実行しようとしていますが、グループに特定の値を持つアイテムのみを返したいとします。group_concatに 'XXX'が含まれているアイテムを削除します。

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を持っている項目だけにそれをフィルタリングしたいと思いますがこの例では、私はこのように持っ使用していると考えることができます

唯一のもの:

having tags like '%tag1%' 

これはしかし、その後、同様にそれらを除外するだろう単語の真ん中にあるものを、キャッチ。

答えて

3

使用find_in_set機能カンマ区切りテキスト

Having find_in_set('tag1', tags_column) > 0 
+0

で値を検索するさて、あなたはそのように考えることができ - 「TAG1を持っていない」ということや、すべての行として – Strawberry

関連する問題