Cara membuat select dengan array berisi klausa nilai di psql

99

Saya memiliki kolom arr yang bertipe array.

Saya perlu mendapatkan baris, di mana arrkolom berisi nilais

Kueri ini:

SELECT * FROM table WHERE arr @> ARRAY['s']

memberikan kesalahan:

EROR: operator tidak ada: karakter bervariasi [] @> teks []

Mengapa tidak berhasil?

ps Saya tahu tentang any()operator, tetapi mengapa tidak @>berhasil?

Oto Shavadze
sumber

Jawaban:

68

Perhatikan bahwa ini juga dapat berfungsi:

SELECT * FROM table WHERE s=ANY(array)
AetherUnbound
sumber
4
Dan ini juga mencegah saya dari kebutuhan untuk dilemparkan ke varchar, seperti dalam s @> ARRAY['constant'::varchar], lebih pendek.
Andrew Backer
Ini tidak akan menggunakan indeks GIN jadi saya akan menggunakannya. Koreksi saya jika saya salah
GorillaApe
17
SELECT * FROM table WHERE arr && '{s}'::text[];

Bandingkan dua larik untuk penahanan.

vol7ron
sumber