DBI does not recognize this syntax for a mySQL query:
q|SELECT * FROM t WHERE REPLACE(t.col,"","") REGEXP ?|
using a bound variable. The REPLACE above could probably be substituted by another function, and using LIKE instead of REGEXP produces the same problem. In other words, this is broken:
q|SELECT * FROM t WHERE REPLACE(t.col,"","") LIKE ?|
and this is not, of course:
q|SELECT * FROM t WHERE t.col LIKE ?|
Substituting the REGEXP inline instead of using a bound variable fixes the problem, as does running the query in mySQL directly.
I'm guessing this is a DBI problem because it's the parsing of the query and the variable-bind that's causing the problem. If this is not the right forum for this issue, or it needs to be reported to another place, please tell me where. Thank you!