MySQL在同一列中计算多个值

时间:2014-03-10 12:56:01

标签: php mysql

我有一个脚本在数据库中为每个添加的视频上传存储用户生成的标签('keywords'),但是它会在同一个关键字列中为每个项目放置多个关键字,空格分隔。我不确定这是如何计算的。显然,我不是专家。

我有一个名为“视频”的表格,然后在其中

Vid      keyword  
------   -----------
1        cars 
2        Cars Audi 
3        Boats 
4        Trains  
5        Aircraft  

有没有办法设置它以便间隔值单独计算?

如果我这样做

SELECT keyword FROM video ORDER BY keyword ASC LIMIT 200

返回

1. Aircraft 
2. Boats 
3. Cars Audi  
4. Trains

有没有办法让它回归;

1. Aircraft
2. Audi
3. Boats
4. Cars 
5. Trains 

并单独识别某些列中的多个间隔关键字。

谢谢!

3 个答案:

答案 0 :(得分:1)

使用这个表格结构太难了... 您需要使用keywordvideo_id创建新表。 此表格中包含primary keyforeign key as video_idkeyword field,只能存储一个关键字

答案 1 :(得分:1)

试试:

 select vid, substring_index(Keyword, ' ', -1)  as item1
 from video
 group by item1 
 order by item1

DEMO HERE

答案 2 :(得分:0)

我不认为MySQL本身就能做到这一点。您需要添加一些脚本(我不知道您是否使用脚本)或更改表的结构。