Мы работаем в PostgreSQL и у нас есть задача поискать нужное слово в массиве из строк. Как это сделать и в чём может быть проблема?
Исходный массив со словами на русском языке в PostgreSQL
Массив будет таким:
SELECT ARRAY['Мотоцикл', 'Самолёт', 'Автомобиль'];
Скриншот из pgAdmin4:
![Массив из трёх слов русского языка в PostgreSQL Массив из трёх слов русского языка в PostgreSQL](https://efim360.ru/wp-content/uploads/massiv-iz-tryoh-slov-russkogo-yazyka-v-postgresql.png)
Если мы попытаемся в лоб поискать вхождение слова ‘Самолёт‘ прямо по массиву, то мы не получим желаемого результата. Будет казаться, что такого слова и вовсе нет в базе данных.
Самым простым решением будет склеивание всех строк массива в одну большую строку и затем сопоставление на искомое слово.
SELECT array_to_string(ARRAY['Мотоцикл', 'Самолёт', 'Автомобиль'], ' ');
Результат склеивания с пробелом в качестве разделителя.
![Склеили все строки массива в одну в PostgreSQL Склеили все строки массива в одну в PostgreSQL](https://efim360.ru/wp-content/uploads/skleili-vse-stroki-massiva-v-odnu-v-postgresql.png)
Теперь все элементы массива стали одним элементом строки.
Информационные ссылки
Официальный сайт WEB-оболочки pgAdmin — https://www.pgadmin.org
Официальный сайт СУБД PostgreSQL — https://www.postgresql.org