Mysql 更改列值取决于出现次数
下面是表格:Mysql 更改列值取决于出现次数,mysql,sql,Mysql,Sql,下面是表格: NAME GENRE book1 genre1 book2 genre2 book3 genre1 book3 genre2 book4 genre1 etc 因此,我们可以有一本只有一种或多种体裁的书。 我想从这张桌子上得到这张桌子 NAME GENRE book1 genre1 book2 genre2 book3 mixed_genres book4 genre1 因此,在新表中如果书只有一种体裁,我们保留这种体裁,如果书有许多体裁,我们通过“混
NAME GENRE
book1 genre1
book2 genre2
book3 genre1
book3 genre2
book4 genre1
etc
因此,我们可以有一本只有一种或多种体裁的书。
我想从这张桌子上得到这张桌子
NAME GENRE
book1 genre1
book2 genre2
book3 mixed_genres
book4 genre1
因此,在新表中如果书只有一种体裁,我们保留这种体裁,如果书有许多体裁,我们通过“混合体裁”改变体裁值
有没有办法做到这一点?
非常感谢你的建议 您可以使用聚合:
select book,
(case when min(genre) = max(genre) then max(genre)
else 'mixed genres'
end) as genre
from t
group by book;
您还可以列出所有类型:
select book, group_concat(genre) as genre
from t
group by book;
试着理解“count(*)和“groupby”是如何工作的。这将是对你问题的回答。