2011-07-14 12 views
1

私のようなコラムregexpと列valueとMySQLのテーブルを持っています。またMySQLの正規表現リスト

regexp value 
ab+c  abc 
bc+d  bcd 

私のような値のリストを持っています(ないデータベースでは、そのクエリ内の)

abc 
abbc 
bcccccd 

リストの値を正規表現にマッチさせ、各アイテムの値を得る必要があります - 期待される出力:

これは正規表現でなかった場合は3210

私は

select `regexp`, `value` 
from `mytable` 
where `regexp` in ('abc', 'abbc', 'bcccccd') 

を使用することができますしかし、私は正規表現に一致するように、これを使用することはできません。 regexp inのいくつかの並べ替えがあっても、それは正規表現と一致しない値を返しますので、これはまだ問題になる可能性があります - 不要な出力:

select rt.value from regextable as rt where 'bcccccd' rlike rt.regexp 

regexp value 
ab+c  abc 
ab+c  abc 
bc+d  bcd 

答えて

0

はたぶん、あなたのような何かを行うことができます入力値ごとに1つのクエリを使用します。

+0

しかし、それは本当に遅いです、私はそのような約100kのクエリが必要です。 – Dani