2011-07-14 97 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