Можно ли одним запросом выбрать строку по условию наличия в поле нужного ID в случае, если ID записаны через запятую в одну строку?

Доброго вечера.
Есть поле ids (таблицы А), в котором через запятую перечислены ID записей другой таблицы B. Пытаюсь одним запросом вывести все поля, в которых значения B.id будут присутствовать в A.ids. Под вечер совершенно не соображаю - LOCATE в данной ситуации подходит слабо (придется запускать как минимум 2-3 проверки), процедуры (чтобы разбить значение поля с айдишниками в массив и использовать оператор IN) - скорее не вариант, чем вариант, т.к. приоритет программному исполнению. Существует ли способ красиво решить проблему?

Движок БД - sqlite.
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Провести рефакторинг и привести все таблицы в нормальную форму.
Ответ написан
Комментировать
chlp
@chlp
фулстек
Если правильно понял и ищем id=5:
SELECT * FROM A where A.ids = '5' OR A.ids like '5,%' OR A.ids like '%,5,%' OR A.ids like '%,5'
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы