使用php在某些mysql行中查找模式

使用php在某些mysql行中查找模式,php,mysql,arrays,design-patterns,matching,Php,Mysql,Arrays,Design Patterns,Matching,我在mysql中有一个2列的表:id(auto_increment)和value(int0/1)。我想找出有多少状态与PHP表中的模式“101”匹配。例如: id | value ---------- 1 | 1 2 | 1 -- 3 | 0 | => (1) 4 | 1 -- 5 | 0 | => (2) 6 | 1 -- 7 | 0 8 | 0 9 | 1 10 | 1 .. | .. .. |

我在mysql中有一个2列的表:id(auto_increment)和value(int0/1)。我想找出有多少状态与PHP表中的模式“101”匹配。例如:

id | value ---------- 1 | 1 2 | 1 -- 3 | 0 | => (1) 4 | 1 -- 5 | 0 | => (2) 6 | 1 -- 7 | 0 8 | 0 9 | 1 10 | 1 .. | .. .. | .. 5000 | 1 -- 5001 | 0 | => (n) 5002 | 1 -- 5003 | 1 ... | ... id |值 ---------- 1 | 1 2 | 1 -- 3 | 0 | => (1) 4 | 1 -- 5 | 0 | => (2) 6 | 1 -- 7 | 0 8 | 0 9 | 1 10 | 1 .. | .. .. | .. 5000 | 1 -- 5001 | 0 |=>(n) 5002 | 1 -- 5003 | 1 ... | ... 使用数组比通过mysql搜索模式更快(将mysql的值导入数组)

任何人都知道如何使用PHP查找整行中有多少个“101”

谢谢
-jack-

以下是如何在SQL中执行此操作

select count(*) match_count
from TheTable t1
join TheTable t2 on t1.id+1 = t2.id
join TheTable t3 on t1.id+2 = t3.id
where t1.value = 1 and t2.value = 0 and t3.value = 1

下面是如何在SQL中实现这一点

select count(*) match_count
from TheTable t1
join TheTable t2 on t1.id+1 = t2.id
join TheTable t3 on t1.id+2 = t3.id
where t1.value = 1 and t2.value = 0 and t3.value = 1

当我开始学习更高级的查询时,我只是问一个问题:您是否可以在
选择
之后使用
t1
id
,以返回启动此序列的行的id?是的,您可以。我最初是这样写的,然后注意到问题说你想知道有多少匹配项,而不是具体的位置。@user2758001我的答案只引用一个表。它自联接两次,将别名
t1
t2
t3
分配给表的实例。用表的实际名称替换我查询中的表。您好,Barmar,谢谢您的解决方案。是否有任何限制,我们可以拥有的最大表别名是多少?我的意思是,是否有可能产生大约15个别名,这样我就可以对15个数字(如“100100010010111”)进行处理,我们将其设置为。。。。。将表t15连接到t1.id+14=t15.id,其中t1.value=1和。。。。。。和t15.value=1?这只是一个问题,因为我开始学习更高级的查询:您是否可以在
选择
后使用
t1
id
以返回启动此序列的行的id?是的,您可以。我最初是这样写的,然后注意到问题说你想知道有多少匹配项,而不是具体的位置。@user2758001我的答案只引用一个表。它自联接两次,将别名
t1
t2
t3
分配给表的实例。用表的实际名称替换我查询中的表。您好,Barmar,谢谢您的解决方案。是否有任何限制,我们可以拥有的最大表别名是多少?我的意思是,是否有可能产生大约15个别名,这样我就可以对15个数字(如“100100010010111”)进行处理,我们将其设置为。。。。。将表t15连接到t1.id+14=t15.id,其中t1.value=1和。。。。。。和t15.value=1?