PostgreSQL | Как склеить строки массива в одну строку с разделителем?

PostgreSQL | Как склеить строки массива в одну строку с разделителем?

Мы работаем в PostgreSQL и у нас есть задача поискать нужное слово в массиве из строк. Как это сделать и в чём может быть проблема?

 

Исходный массив со словами на русском языке в PostgreSQL

Массив будет таким:

SELECT ARRAY['Мотоцикл', 'Самолёт', 'Автомобиль'];

Скриншот из pgAdmin4:

Массив из трёх слов русского языка в PostgreSQL
Массив из трёх слов русского языка в PostgreSQL

Если мы попытаемся в лоб поискать вхождение слова ‘Самолёт‘ прямо по массиву, то мы не получим желаемого результата. Будет казаться, что такого слова и вовсе нет в базе данных.

Самым простым решением будет склеивание всех строк массива в одну большую строку и затем сопоставление на искомое слово.

SELECT array_to_string(ARRAY['Мотоцикл', 'Самолёт', 'Автомобиль'], ' ');

Результат склеивания с пробелом в качестве разделителя.

Склеили все строки массива в одну в PostgreSQL
Склеили все строки массива в одну в PostgreSQL

Теперь все элементы массива стали одним элементом строки.

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdminhttps://www.pgadmin.org

Официальный сайт СУБД PostgreSQLhttps://www.postgresql.org