PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Requête SQL pour correspondre à l'une des multiples chaînes

Pour une solution appropriée, soit normaliser la conception de votre base de données ou, à défaut, envisagez la recherche en texte intégral .

Pour une solution rapide au problème actuel, utilisez un correspondance d'expression régulière (~ ) ou trois simples LIKE expression :

SELECT *
FROM   subscriberfields 
WHERE  name ~ '(Khairpur|Islamabad|Karachi)';

Ou :

...
WHERE (name LIKE '%Khairpur%'
    OR name LIKE '%Islamabad%'
    OR name LIKE '%Karachi%')

Ou utilisez ~* ou ILIKE pour une correspondance insensible à la casse.

Puisqu'une autre réponse le suggérait :jamais utilisez SIMILAR TO :