Onlara karşı MySQL veritabanı tablo ve maching düzenli ifadeler saklanması

2 Cevap php

Ben nasıl uygulanacağı bilmiyorum ki, çok ilginç bir görev var.

Ben bir veritabanı tablosunda çok düzenli ifadeler saklamak gerekir ve verilen dizeyle eşleşen bunların hangi bulmak gerekiyor.

Örneğin:

id | regexp
---|-------------
1  | ^hello world$
2  | ^I have [0-9] flowers&
3  | ^some other regexp$ 
4  | ^and another (one|regexp)$

Ve "Ben 5 çiçekler var" dizesi ile eşleşen bu ifadelerin hangi bulmalıyız. Tabii ki bu işlemek için sunucu için korkunç SELECT * FROM table ve onlara PHP teker teker uyan bir ifadeler döngü, ancak olurdu olabilir.

Nedense ben endeksi bu tablo ya da bu görevi işlemek için özel bir SQL sorgusu kullanabilir miyim?

Ben herhangi bir cevap takdir edeceksiniz. Teşekkür ederim.

2 Cevap

select * from table where $your_string RLIKE regexp 

mysql regular expressions

SELECT * FROM table WHERE 'some stuff' REGEXP `regexp`;

Ne yazık ki İfadelerinin kullanan sorguları indeksler kullanmak için hiçbir yolu yoktur.