sql >> Database >  >> RDS >> PostgreSQL

Hoe voer ik een zoekopdracht uit op een kolomwaarde die een tekenreeks bevat met door komma's gescheiden waarden?

Je kunt zoiets doen.

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

1) verwijder spaties in de bestaande string voor de juiste string_to_array scheiding zonder spaties vooraan met gebruik van Replace

2)string_to_array converteert je string naar array gescheiden door komma's.

3) @> is de contains telefoniste

(OF)

Als je als geheel wilt matchen

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

Voor afzonderlijke wedstrijden kunt u doen

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

Meer over positie hier



  1. CSV-veld wijzigen bij importeren naar mysql

  2. Een index forceren in orakel

  3. een datum invoegen in de mysql-database

  4. SqlAlchemy (Postgres + Flask):Hoe meerdere kolommen optellen?