web-dev-qa-db-fra.com

LIKE avec% sur les noms de colonne

Voici ma requête qui entraîne une erreur de syntaxe:

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

Le champ account_invoice.Origin contient le texte de sale_order.name, ainsi que d'autres textes également, donc je dois faire correspondre la chaîne sale_order.name n'importe où dans la chaîne account_invoice.Origin.

J'utilise PostgreSQL 8.4.

31
user1806801

Essaye ça

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

% a besoin d'un guillemet simple car le modèle est une chaîne.

|| est l'opérateur pour concaténation .

62
Marc