I’m using the following query with regexp:
SELECT a.id, a.company, a.name, b.title, b.description, b.t_id
FROM a, b
WHERE ( b.title
REGEXP "[[:<:]]a.company[[:>:]]" OR b.description
REGEXP "[[:<:]]a.company[[:>:]]" OR b.title
REGEXP "[[:<:]]a.name[[:>:]]" OR b.description
REGEXP "[[:<:]]a.name[[:>:]]" ) AND a.company != '' AND a.name != ''
But, this query is not giving any result nor its giving any syntax error.
When I replace a.company or a.name with any of the company name then this query runs fine. Why doesn’t this query work with the column names?
You’re searching for the literal string
a.company, and not the column. Try this:This provides the
regexpwith the value of the column, not the string'a.company'. Since my guess is that you want to compare the column value (and not the column name), you will need to concatenate yourregexptogether.You can test this with this query:
Here,
Test1will always be the valueMy col: a.company, while Test2 will beMy col: <company col value here>.