@exxagw

Как разбить строку и сравнить 2 массива в SQL?

Никак не могу решить

есть 2 таблицы
1. countries
id || name || code
1 || test1 || rus,bel,are
2 || test2 || usa,bel

2. resources
id || title || code
1 || res1 || rus,bel,usa
2 || res2 || usa
3 || res3 || rus
4 || res4 || bel

Каким образом выбрать все ресурсы у одной страны?
Например получить все ресурсы страны test1 (это должны быть res1, res3 и res4).
Или получить все ресурсы страны test2 (res1, res2, res4)
  • Вопрос задан
  • 431 просмотр
Пригласить эксперта
Ответы на вопрос 2
streetflush
@streetflush
На лицо не правильно спроектированная БД.
Возиться с этим не смысла.

Вынести коды в отдельную таблицу.
Создать таблицы связи код-страна код-ресурс
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега MySQL
SELECT resources.name
FROM resources
WHERE resources.code REGEXP (
    SELECT REPLACE(countries.code, ',', '|')
    FROM countries
    WHERE countries.name='test1'
    LIMIT 1
)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы