javamysqlregexejbql

EJBQL/MySQL Regexes and IN


I have a list of Regexes and want to return those rows with a field which passes any regex. Is there anyway to something like the following:

SELECT * FROM Foo as f WHERE f.bar IN ("regex1","regex2");

It doesn't look like Regexes are possible at all in EJBQL so I'm guessing I have to use a native (MySQL) query.


Solution

  • Why not combine the regexes into one?

    "(?:" + regex1 + ")|(?:" + regex2 + ")"
    

    So if regex1 = "^.*foo(.*)bar" and regex2 = "baz(.*)frob$", you'd get

    (?:^.*foo(.*)bar)|(?:baz(.*)frob$)