2016-02-16 13 views
5

thẻ của tôi bảngCần giá trị phổ biến nhất trong giá trị được phân tách bằng dấu phẩy mysql?

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

cần ra đặt như

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

http://php.net/manual/en/function.array-count-values.php – rahul

+0

chuẩn hóa cơ sở dữ liệu để tránh lưu trữ các giá trị dấu phẩy tách ra và ngăn ngừa phức tạp . –

+1

Nếu tôi đi * ở đó *, tôi sẽ không bắt đầu từ * tại đây * – Strawberry

Trả lời

2

Không chắc gì DB mở rộng bạn đang sử dụng. Bạn có thể thử điều này -

// 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); 

Điều này giống như một thuật toán. Thực hiện nó với mã của bạn.

1

Hãy thử điều này .. Hy vọng nó sẽ giúp ích.

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

Điều này sẽ không giúp ích gì vì 'thẻ' có các giá trị khác nhau. Vì vậy, 'COUNT' sẽ là' 1' cho tất cả các giá trị. –

+0

Để nhận danh sách các giá trị và số lần xuất hiện của chúng: Hãy thử. chọn col_name, đếm (col_name) c từ bảng nhóm theo col_name đặt hàng bởi c desc; –

+1

Vui lòng kiểm tra điều này http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_find-in-set –

1

này có thể giúp: select group_concat(tags) from tags group by tag;

Các vấn đề liên quan