2013-09-08 3 views
0

J'ai une table avec 2 colonnes dans mysql: id (auto_increment) et value (int 0/1). Je veux trouver combien de présence correspondent au modèle "101" dans la table avec PHP. Exemple:Trouver un motif dans une ligne mysql avec php

 
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 
... | ... 

utilisation du tableau est plus rapide que la recherche par le modèle mysql (importer la valeur de MySQL à un tableau)?

Tout corps sait comment trouver la présence de "101" dans les lignes entières en utilisant PHP?

Merci -Jack-

Répondre

3

Voici comment vous pouvez le faire dans 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 
+0

Juste une question, que je commence à apprendre des requêtes plus avancées: Pouvez-vous utiliser '' t1'.'id' après select' afin de retourner l'identifiant (s) de la ligne (s) qui commence cette séquence? –

+1

Oui, vous pourriez. Je l'ai écrit à l'origine de cette façon, puis remarqué que la question dit que vous vouliez savoir combien de matches, pas les positions spécifiques. – Barmar

+0

Salut Barmar, merci. Mais j'ai seulement 1 (une) table avec 2 colonnes ... – user2758001

Questions connexes