sql >> Databáze >  >> RDS >> PostgreSQL

SQL dotaz, který odpovídá jednomu z více řetězců

Pro správné řešení buď normalizujte návrh databáze nebo, pokud to není možné, zvažte fulltextové vyhledávání .

Pro rychlé řešení problému použijte shoda regulárního výrazu (~ ) nebo tři jednoduché ILIKE výrazy:

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

Nebo:

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

Nebo použijte ~* nebo ILIKE pro párování bez rozlišení velkých a malých písmen.

Protože to navrhla jiná odpověď:nikdy použijte SIMILAR TO :



  1. kaskádové mazání způsobující více kaskádových cest

  2. Problém Django inspectdb pomocí databáze Oracle

  3. Oznámení ClusterControl 1.5 – s automatickým ověřováním zálohy a nahráváním do cloudu

  4. UPDATE a REPLACE část řetězce