sql >> Database teknologi >  >> RDS >> PostgreSQL

SQL-forespørgsel til at matche en af ​​flere strenge

For en ordentlig løsning skal du enten normalisere dit databasedesign eller, bortset fra det, overvej fuldtekstsøgning .

For en hurtig løsning på det aktuelle problem, brug en match med regulært udtryk (~ ) eller tre simple LIKE udtryk:

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

Eller:

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

Eller brug ~* eller ILIKE for store og små bogstaver.

Da et andet svar foreslog det:aldrig brug SIMILAR TO :



  1. Hvordan retter man dobbeltkodede UTF-8 strenge, der sidder i MySQL utf8_general_ci felter?

  2. TOAD mener &String som bindevariabel

  3. SQL Server (TSQL) - Er det muligt at EXEC-sætninger parallelt?

  4. PHP udløbsdato