2011-07-14 94 views
1

我有喜歡regexp柱和柱value一個MySQL表:MySQL的正則表達式列表

regexp value 
ab+c  abc 
bc+d  bcd 

我也有類似值列表:(而不是在數據庫中,其查詢)

abc 
abbc 
bcccccd 

我需要匹配列表中的正則表達式的值,並獲得價值對每個項目 - 預期輸出:

match value 
abc  abc 
abbc  abc 
bcccccd bcd 

如果這不是一個正則表達式,我可以用

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

但我不能用它來搭配正則表達式。即使有某種regexp in這將仍然是有問題的,因爲它會返回正則表達式和不匹配的值 - 不需要輸出:

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

回答

0

也許你可以這樣做:

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

併爲每個輸入值使用一個查詢。

+0

但是這樣會很慢,我需要大約10萬個這樣的查詢。 – Dani