我有一个字符串数组和一个带有文本类型列的表。我想列出在表中任何行的指定列中出现了多少个字符串。有没有办法通过一个查询来做到这一点?
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/