我有一个正则表达式的列表,并希望返回那些带有一个字段的行,该字段可以传递任何正则表达式。有没有类似下面这样的东西:
SELECT * FROM Foo as f WHERE f.bar IN ("regex1","regex2");看起来在EJBQL中根本不可能使用正则表达式,所以我猜我必须使用原生(MySQL)查询。
发布于 2010-12-30 21:33:57
为什么不把正则表达式组合成一个呢?
"(?:" + regex1 + ")|(?:" + regex2 + ")"所以如果regex1 = "^.*foo(.*)bar"和regex2 = "baz(.*)frob$",你会得到
(?:^.*foo(.*)bar)|(?:baz(.*)frob$)发布于 2010-12-30 21:33:05
不,这不可能。至少不是你想的那样。
改为这样做:将正则表达式作为行插入到表中。然后查询
SELECT
*
FROM
Foo AS f
INNER JOIN Regexes AS re ON f.bar REGEXP re.patternhttps://stackoverflow.com/questions/4562860
复制相似问题