PostgresSQL .netCore w jaki sposób przefiltrować TXT[]

0

Witam,

Czy wie ktoś może w jaki sposób przefiltrować tablice w postgresie używając 'LIKE'a.

Czyli w bazie mam rekord który ma kolumnę typu tablica stringów i chciałbym teraz wyciągnąć wszystkie rekordy w których tablice zawierają np. litere 'a'.

Używam npgsql do połączenia się z bazą.

1

Nie wiem czy Cię zrozumiałem.

  1. Możesz użyć operatora CONTAINS dla tablic (@>)
  2. Możesz tablicę, hmm, "rozbić" (nie przychodzi mi do głowy lepsze polskie określenie na operację "unnest") na elementy i wybierać te rekordy, które zawierają w tablicy element spełniający warunek (drugie zapytanie)
create table foo ( id int,  an_arr text[]);

insert into foo values (1,array['aaa','bbb','xy']);
insert into foo values (2,array['ccc','ddd','xy']);
insert into foo values (3,array['ccc','ddd','ab']);
insert into foo values (4,array['ccc','ddd','cd']);

select * from foo where an_arr @> array['xy'];

select id,foo from (
  select id,foo,unnest(an_arr) elem from foo
) tmp where elem like 'dd%';

Ogólnie: https://www.postgresql.org/docs/current/functions-array.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1