sql >> Database >  >> RDS >> PostgreSQL

SQL-query die overeenkomt met een van meerdere tekenreeksen

Voor een goede oplossing moet u ofwel uw database-ontwerp normaliseren of, behalve dat, overweeg zoeken in volledige tekst .

Gebruik voor een snelle oplossing van het probleem een ​​overeenkomst voor reguliere expressies (~ ) of drie simpele LIKE uitdrukkingen:

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

Of:

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

Of gebruik ~* of ILIKE voor hoofdletterongevoelige overeenkomsten.

Aangezien een ander antwoord het voorstelde:nooit gebruik SIMILAR TO :



  1. Slick 3.0 (scala)-query's retourneren geen gegevens totdat ze meerdere keren worden uitgevoerd (denk ik)

  2. Hoe te achterhalen of er een unieke sleutelbeperking bestaat voor bepaalde kolommen

  3. Waarom wordt er slechts 64 kB aan gegevens opgeslagen in mijn MySQL-gegevenskolom?

  4. SQL - unieke combinatie van kolommen tellen