web-dev-qa-db-ja.com

列名に%を使用したLIKE

構文エラーになるクエリは次のとおりです。

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

Account_invoice.Originフィールドには、sale_order.nameのテキストとその他のテキストが含まれているので、account_invoice.Origin文字列の任意の場所でsales_order.name文字列と一致させる必要があります。

PostgreSQL 8.4を使用しています。

31
user1806801

これを試して

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

%パターンが文字列であるため、単一引用符が必要です。

||concatenation の演算子です。

62
Marc