php - 查询列出表中出现了多少个字符串?

标签 php mysql

我有一个字符串数组和一个包含文本类型列的表格。我想列出哪个字符串在表中任何行的指定列中出现了多少。有没有一种方法可以通过一个查询来做到这一点?

Example;
$strings = array('test', 'sth');

Table;
id | someTextColumn
-------------------
1  | abc tests
2  | sthab
3  | teststh
4  | abcd
5  | sth

Expected result;
str  | occurences
-----------------
test | 2
sth  | 3

最佳答案

您可以使用一系列 like 语句来完成此操作。

这是一个例子:

select totest.str, count(t.id)
from (select 'test' as str union all
      select 'sth'
     ) totest left outer join
     t
     on t.someTextColumn like concat('%', totest.str, '%')
group by totest.str

如果您的表很大,这不会特别快。如果您有大型表,您可能需要考虑全文索引。

关于php - 查询列出表中出现了多少个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16759301/

相关文章:

php - 一般错误 : 1364 Field 'department_id' doesn't have a default value

c#读取数据时输入字符串格式不正确错误

mysql - 表中的 DATETIME 列、同一表的表单、包含记录日期和时间的最佳方式

MySQL插入锁定的别名表

php - 搜索超过 1 列

php - 获取一周中的天数范围

php - 在 codeigniter 中命名 Controller 和模型的最佳方式

mysql - 使用nodeJs和 'Q'异步连接到MySQL

php - 使用 1 个输入字段搜索 2 列

php - 获取每个表的所有信息