Search code examples
postgresqlsql-like

LIKE with % on column names


Here is my query that results in a syntax error:

SELECT * 
FROM account_invoice,sale_order
WHERE sale_order.name LIKE %account_invoice.origin%

The account_invoice.origin field contains the text of sale_order.name, plus other text as well, so I need to match sale_order.name string anywhere in the account_invoice.origin string.

I'm using PostgreSQL 8.4.


Solution

  • Try this

    SELECT * 
    FROM account_invoice,sale_order
    WHERE sale_order.name LIKE '%'  || account_invoice.origin || '%'
    

    % needs single quote because the pattern is a string.

    || is the operator for concatenation.