如何计算字符串在逗号分隔的mySQL字段中出现的次数?

时间:2014-09-11 09:10:53

标签: php mysql

我的mySQL是这样的,idtexts可能有短语,有些相同,如下所示:

id      texts
2       abc,fd4g,oigdu,abc,abc
3       ccc,fff,fff,ccc,iop

我的问题是如何使用PHP / mySQL显示

  1. 每个身份
  2. 2 - abc - 3 times

    2 - fd4g - 1 times

    2 - oigdu - 1 times

    3 - ccc - 2 times

    3 - fff - 2 times

    3 -iop - 1 times

    1. 或通过文字搜索

      abc - 2 times - 2

      fd4g - 1 times - 2

      oigdu - 1 times - 2

      ccc - 2 times - 3

      fff - 2 times - 3

      iop - 1 times - 3

    2. -

      如果我的mySQL结构是:

      id      texts
      2       abc
      2      fd4g
      2      oigdu
      2      abc
      2      abc
      3       ccc
      3      fff
      3      fff
      3      ccc
      3      iop
      

      这会更容易吗?

2 个答案:

答案 0 :(得分:3)

第二种结构会更容易。但是,您不应该为第一列id命名,因为id字段通常具有unique key值,这意味着只会自动递增值。你有多次相同的数字,所以你显然不是唯一的,而是不同的。

使用其他查询可以运行

SELECT id, texts, COUNT(*) FROM tbl group by id, texts

,你的结果将是

2  |  abc  |  3
2  | fd4g  |  1

等等。

答案 1 :(得分:0)

通过执行此代码,您可以获得相同值的计数

select id, texts, count(id) from table group by texts