Php 计数子字符串的出现次数,并限制子字符串的数量

Php 计数子字符串的出现次数,并限制子字符串的数量,php,mysql,Php,Mysql,我想在出现子字符串时搜索字符串。但我想把它们限制在特定的检测量 我的VARCHAR看起来像这样: 0,90,0,90,180,180,270,0,270,0,90 我的第一次尝试是用一个类似的语句。但我无法计算发生的次数: SELECT * FROM anglesTable WHERE corners LIKE "%180%' AND corners LIKE "%270%' LIMIT 1000 我的第二次尝试是: SELECT *, foo.counts270,foo.cou

我想在出现子字符串时搜索字符串。但我想把它们限制在特定的检测量

我的VARCHAR看起来像这样:

0,90,0,90,180,180,270,0,270,0,90
我的第一次尝试是用一个类似的语句。但我无法计算发生的次数:

SELECT *   FROM anglesTable WHERE corners LIKE "%180%' AND corners LIKE "%270%'  LIMIT 1000 
我的第二次尝试是:

 SELECT  *, foo.counts270,foo.counts180,foo.counts60 FROM 
   (
     SELECT anglesNew.*, 
            LENGTH( corners) - LENGTH(REPLACE(corners, '270', '')) AS counts270,
            LENGTH( corners) - LENGTH(REPLACE(corners, '180', '')) AS counts180, 
            LENGTH( corners) - LENGTH(REPLACE(corners, '60', '')) AS counts60 
     FROM anglesNew 
   ) as foo
但这太慢了

我想知道是否有更快捷的方法通过一个有300万条记录的数据库来查询


如果有更好的方法来搜索此类数据,欢迎提供建议。

可能是这里的关键。为什么要从子查询中选择?删除外部选择我发现: