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

Hvordan udfører man en søgeforespørgsel på en kolonneværdi, der indeholder en streng med kommaseparerede værdier?

Du kan gøre sådan noget.

select name from zone_table where 
string_to_array(replace(tags,' ',''),',')@>
string_to_array(replace('down, 110.22.100.3',' ',''),',');

1) slet mellemrum i den eksisterende streng for korrekt string_to_array-adskillelse uden mellemrum foran ved hjælp af replace

2)string_to_array konverterer din streng til array adskilt med komma.

3) @> er indeholder operatør

(ELLER)

Hvis du vil matche som en helhed

select name from zone_table where POSITION('down, 110.22.100.3' in tags)!=0

For separate kampe kan du gøre

select name from zone_table where POSITION('down' in tags)!=0 and 
POSITION('110.22.100.3' in tags)!=0

Mere om stilling her



  1. SQL domæne FEJL:kolonne eksisterer ikke, indstilling standard

  2. Hvorfor forsøger rails at oprette forbindelse til mysql?

  3. Kan ikke åbne View->DBA Menu i SQL Developer (Oracle 12C Standard Edition installeret)

  4. få MySQL-forespørgslen til at vælge maks. tidsstempel med gruppe for sætning