需要在mysql逗号分隔值中最受欢迎的值?

时间:2016-02-16 07:09:49

标签: php mysql

我的标签表

| id  | tags         
| --- | ------------ 
| 1   | css,html,php 
| 2   | php,java,css      
| 3   | java,c++,ios 

需要像

一样
| tags  | tags         
| ---   | ------------ 
| css   |  2  
| php   |  2    
| java  |  1
| html  |  1
| c++   |  1
| ios   |  1

3 个答案:

答案 0 :(得分:2)

不确定您使用的是哪种数据库扩展程序。你可以试试这个 -

// Fetch the data by executing- 
"SELEC GROUP_CONCAT(tags) tags FROM my_tags";

// Then explode them
$tags = $row['tags'];
$tags_array= explode(',', $tags);

//Count the values
$counts = array_count_values($tags_array);

// Sort
$counts = arsort($counts);

这就像一个算法。用你的代码实现它。

答案 1 :(得分:1)

试试这个..希望它会有所帮助。

SELECT       `value`,
             COUNT(`value`) AS `value_occurrence` 
    FROM     `my_table`
    GROUP BY `value`
    ORDER BY `value_occurrence` DESC
    LIMIT    1;

答案 2 :(得分:1)

这可能会有所帮助: select group_concat(tags) from tags group by tag;