sql >> Databasteknik >  >> RDS >> PostgreSQL

SQL-fråga för att matcha en av flera strängar

För en korrekt lösning, antingen normalisera din databasdesign eller, med undantag för det, överväg fulltextsökning .

För en snabb lösning på problemet, använd en matchning av reguljära uttryck (~ ) eller tre enkla LIKE uttryck:

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

Eller:

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

Eller använd ~* eller ILIKE för skiftlägesokänslig matchning.

Eftersom ett annat svar föreslog det:aldrig använd SIMILAR TO :



  1. Zend_Db ordning efter fält Värde

  2. Spring Mvc Hibernate Encoding/Multi-line import sql

  3. Hur påverkar lagringsbackend Datomic?

  4. multiprocessing modul och distinkta psycopg2-anslutningar