2016-02-16 21 views
5

benim etiketler tabloMysql virgülle ayrılmış değerdeki en popüler değere mi ihtiyacınız var?

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

dışarı emin kullandığınız Ne DB uzantısı

| 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

virgülle ayrılmış değerleri depolamak önlemek ve karmaşıklığı önlemek için veritabanı normalize . –

+1

Eğer * oraya gidiyor olsaydım, * buradan başlayamazdım * – Strawberry

cevap

2

gibi koymak gerekmez. Bunu deneyebilirsiniz - Bu bir algoritma gibidir. Bunu kodunuzla uygulayın.

1

Bunu deneyin. Umarım yardımcı olur.

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

Bu, 'tag'lerin farklı değerleri olduğu için yardımcı olmaz. Yani "COUNT" tüm değerler için "1" olur. –

+0

Değerlerin listesini ve görünümlerinin sayısını görmek için: Deneyin. col_name öğesini seçin, count (col_name) c tablosundan tablo grubu tarafından col_name order by c desc; –

+1

Lütfen bunu kontrol edin http://dev.mysql.com/doc/refman/5.1/tr/string-functions.html#function_find-in-set –

1

Bu yardımcı olabilir: select group_concat(tags) from tags group by tag;

İlgili konular