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

Jak provést vyhledávací dotaz na hodnotu sloupce obsahující řetězec s hodnotami oddělenými čárkami?

Můžete udělat něco takového.

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

1) smažte mezery ve stávajícím řetězci pro správné oddělení string_to_array bez jakýchkoli mezer na přední straně pomocí nahradit

2)string_to_array převede váš řetězec na pole oddělené čárkou.

3) @> je contains operátor

(NEBO)

Pokud se chcete shodovat jako celek

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

Pro samostatné zápasy můžete

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

Více o pozici zde



  1. Jak vytvořit prázdný formulář v Accessu 2016

  2. Oracle String Functions (úplný seznam)

  3. Dotaz na propojený sql server

  4. Jaké je výchozí pořadí výběru v PostgreSQL nebo MySQL?