代码之家  ›  专栏  ›  技术社区  ›  Ice76

MySQL按逗号分隔列中的值分组[duplicate]

  •  0
  • Ice76  · 技术社区  · 8 年前

    当前的表是这样的 enter image description here

    我试图得到每个产品,版本和语言的字数。我得到的问题是分离版本号,因为它是一个逗号分隔列。有没有办法分别计算版本1和版本2中所有单词的计数?

    我目前有这个查询,它可以工作,但它没有在逗号分隔列中按版本分开。

    SELECT COUNT( translation ) AS translations, fdp.name AS product, fdv.name AS version, fdl.name AS language, fdl.position 
    FROM `fdnfortidictionary_dictionary` AS `fdd`  
    LEFT JOIN `fdnfortidictionary_product` AS `fdp` ON fdd.product_id = fdp.id  
    LEFT JOIN `fdnfortidictionary_version` AS `fdv` ON fdd.version_id = fdv.id  
    LEFT JOIN `fdnfortidictionary_language` AS `fdl` ON fdd.language_id = fdl.id WHERE fdp.enable = 1 
      AND fdd.product_id IN (1,2) 
      AND CONCAT( ",", fdd.version_id, "," ) REGEXP ",(1|2|3|4|5)," 
    GROUP BY `language`,`version`,`product`,`position` 
    ORDER BY fdl.position ASC
    

    我要找的结果是, enter image description here

    1 回复  |  直到 8 年前
        1
  •  1
  •   Uueerdo    8 年前

    看来你在 FIND_IN_SET() 可能吧,大概是 FIND_IN_SET(fdd.version_id, fdl.version_id) > 0