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

Php 如何计算字符串在mySQL中以逗号分隔的字段中出现的次数?,php,mysql,Php,Mysql,我的mySQL是这样的,一个id,一个文本,其中包含可能的短语和一些相同的短语,如下所示: id texts 2 abc,fd4g,oigdu,abc,abc 3 ccc,fff,fff,ccc,iop 我的问题是如何使用PHP/mySQL显示 每个id 2-abc-3次 2-fd4g-1次 2-oigdu-1次 3-ccc-2次 3-fff-2次 3-iop-1次 或者通过文本进行搜索 abc-2倍-2 fd4g-1次-2次 oigdu-1倍-2 ccc-2

我的mySQL是这样的,一个
id
,一个
文本
,其中包含可能的短语和一些相同的短语,如下所示:

id      texts
2       abc,fd4g,oigdu,abc,abc
3       ccc,fff,fff,ccc,iop
我的问题是如何使用PHP/mySQL显示

  • 每个id
  • 2-abc-3次

    2-fd4g-1次

    2-oigdu-1次

    3-ccc-2次

    3-fff-2次

    3-iop-1次

  • 或者通过文本进行搜索

    abc-2倍-2

    fd4g-1次-2次

    oigdu-1倍-2

    ccc-2次-3次

    fff-2次-3次

    iop-1倍-3

  • -

    如果我的mySQL结构是:

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

    这会更容易吗?

    第二种结构会更容易。但是您不应该命名第一列
    id
    ,因为
    id
    -字段通常具有
    唯一键
    值,这意味着只有自动递增的值。你有很多倍于同一个数字,所以你知道它显然不是唯一的,而是不同的

    使用另一个查询,您可以运行

    SELECT id, texts, COUNT(*) FROM tbl group by id, texts
    
    你的结果是

    2  |  abc  |  3
    2  | fd4g  |  1
    

    依此类推。

    第二种结构会更容易。但是您不应该命名第一列
    id
    ,因为
    id
    -字段通常具有
    唯一键
    值,这意味着只有自动递增的值。你有很多倍于同一个数字,所以你知道它显然不是唯一的,而是不同的

    使用另一个查询,您可以运行

    SELECT id, texts, COUNT(*) FROM tbl group by id, texts
    
    你的结果是

    2  |  abc  |  3
    2  | fd4g  |  1
    

    依此类推。

    第二种结构会更容易。但是您不应该命名第一列
    id
    ,因为
    id
    -字段通常具有
    唯一键
    值,这意味着只有自动递增的值。你有很多倍于同一个数字,所以你知道它显然不是唯一的,而是不同的

    使用另一个查询,您可以运行

    SELECT id, texts, COUNT(*) FROM tbl group by id, texts
    
    你的结果是

    2  |  abc  |  3
    2  | fd4g  |  1
    

    依此类推。

    第二种结构会更容易。但是您不应该命名第一列
    id
    ,因为
    id
    -字段通常具有
    唯一键
    值,这意味着只有自动递增的值。你有很多倍于同一个数字,所以你知道它显然不是唯一的,而是不同的

    使用另一个查询,您可以运行

    SELECT id, texts, COUNT(*) FROM tbl group by id, texts
    
    你的结果是

    2  |  abc  |  3
    2  | fd4g  |  1
    

    依此类推。

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


    按文本从表组中选择id、text、count(id)

    执行此代码可以获得相同值的计数


    按文本从表组中选择id、text、count(id)

    执行此代码可以获得相同值的计数


    按文本从表组中选择id、text、count(id)

    执行此代码可以获得相同值的计数



    按文本从表组中选择id、文本、计数(id)

    到目前为止有任何尝试吗?您建议的结构应该更易于处理。使用您建议的结构,您可以通过文本
    从表组中无限地选择COUNT(id)
    @Xalloumokkelos。您无法直接使用SQL完成您想要的任务(它不是为此而构建的)。您将需要从SQL中引入行,并在代码中执行字符串计数。到目前为止,该线程的任何尝试都已得到响应?您建议的结构应该更易于处理。使用您建议的结构,您可以通过文本
    从表组中无限地选择COUNT(id)
    @Xalloumokkelos。您无法直接使用SQL完成您想要的任务(它不是为此而构建的)。您将需要从SQL中引入行,并在代码中执行字符串计数。到目前为止,该线程的任何尝试都已得到响应?您建议的结构应该更易于处理。使用您建议的结构,您可以通过文本
    从表组中无限地选择COUNT(id)
    @Xalloumokkelos。您无法直接使用SQL完成您想要的任务(它不是为此而构建的)。您将需要从SQL中引入行,并在代码中执行字符串计数。到目前为止,该线程的任何尝试都已得到响应?您建议的结构应该更易于处理。使用您建议的结构,您可以通过文本
    从表组中无限地选择COUNT(id)
    @Xalloumokkelos。您无法直接使用SQL完成您想要的任务(它不是为此而构建的)。您将需要从SQL中引入行,并在代码中执行字符串计数。此线程也已被应答