php - 如何计算一个字符串在mySQL中以逗号分隔的字段中出现了多少次?

标签 php mysql

我的mySQL是这样的,一个id , 和一个 texts有可能的短语和一些相同的如下:

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

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

  1. 每个ID

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

-

如果我的 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 字段通常具有 unique key 值,这意味着只有自动递增的值。你有多次相同的数字,所以你显然不是唯一的,而是不同的东西。

您可以运行其他查询

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

你的结果是

2  |  abc  |  3
2  | fd4g  |  1

等等。

关于php - 如何计算一个字符串在mySQL中以逗号分隔的字段中出现了多少次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25783446/

相关文章:

php - MySQLi 更新查询中的自定义时区

php - Ajax 响应 HTML 响应

mysql windows 远程访问

php - 根据数组对象计算行数

php - 使用 php 进行分面搜索

javascript - 使用 jQuery 检索表单中提交按钮的名称

PHP 表单在提交时清除并仅刷新页面(不将数据发送到 Mysql)

mysql - 标准之间的日期每周一都会变化

mysql - [FireDac][物理][MySQL]-1101。不支持的 MySQL 版本 [0]。支持从 v 3.20 到 v6.2 的客户端和服务器

mysql - 在MySql服务器中恢复postgreSql的.backup文件