PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zapytanie SQL pasujące do jednego z wielu ciągów

Aby uzyskać właściwe rozwiązanie, albo znormalizuj projekt bazy danych lub, poza tym, rozważ wyszukiwanie pełnotekstowe .

Aby szybko rozwiązać problem, użyj dopasowanie wyrażenia regularnego (~ ) lub trzy proste LIKE wyrażenia:

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

Lub:

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

Lub użyj ~* lub ILIKE dla dopasowania bez rozróżniania wielkości liter.

Ponieważ sugerowała to inna odpowiedź:nigdy użyj SIMILAR TO :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dołącz do danych wyjściowych tablicy unnest bez tworzenia tabeli tymczasowej

  2. W jaki sposób pgBouncer pomaga przyspieszyć działanie Django?

  3. Python łączy się z postgresql za pomocą libpq-pgpass

  4. Dołączyć nazwę tabeli do każdej kolumny w zestawie wyników w SQL? (w szczególności Postgres)

  5. psycopg2 COPY przy użyciu cursor.copy_from() zawiesza się przy dużych wejściach