MySQL COUNT()多列

Lia*_*rch 4 mysql sql count

我正在尝试从我的数据库中的所有视频中获取最受欢迎的标签(忽略空白标签).我还需要每个标签的'flv'.如果每个视频都有一个标签,我就可以按照自己的意愿工作:

SELECT tag_1, flv, COUNT(tag_1) AS tagcount 
  FROM videos 
 WHERE NOT tag_1='' 
 GROUP BY tag_1 
 ORDER BY tagcount DESC LIMIT 0, 10
Run Code Online (Sandbox Code Playgroud)

但是在我的数据库中,每个视频都允许使用三个标签 - tag_1,tag_2和tag_3.有没有办法让从多列中读取最流行的标签?

记录结构是:

+-----------------+--------------+------+-----+---------+----------------+ 
| Field           | Type         | Null | Key | Default | Extra          | 
+-----------------+--------------+------+-----+---------+----------------+ 
| id              | int(11)      | NO   | PRI | NULL    | auto_increment | 
| flv             | varchar(150) | YES  |     | NULL    |                | 
| tag_1           | varchar(75)  | YES  |     | NULL    |                | 
| tag_2           | varchar(75)  | YES  |     | NULL    |                | 
| tag_3           | varchar(75)  | YES  |     | NULL    |                | 
+-----------------+--------------+------+-----+---------+----------------+ 
Run Code Online (Sandbox Code Playgroud)

Car*_*ter 6

select tag, flv, count(*) as tag_count
from (
  select tag_1 as tag, flv from videos
  UNION
  select tag_2 as tag, flv from videos
  UNION
  select tag_3 as tag, flv from videos
) AS X
Run Code Online (Sandbox Code Playgroud)

我认为会这样做,但如果任何记录对两个标签具有相同的值,则会进行重复计算.

更新:添加AS X.