Ненормализованная БД имеет таблицу с именем пакетов
В пакетах таблиц есть поле student_ids с несколькими идентификаторами. Например 1311, 1319, 1400
Из: ВЫБЕРИТЕ student_ids ИЗ пакетов, ГДЕ 1311 IN (student_ids)
мы получаем student_ids: 1311, 1319, 1400
И: ВЫБЕРИТЕ student_ids ИЗ пакетов, ГДЕ 1319 В (1311, 1319, 1400)
отлично работает: 1311, 1319, 1400
но
ВЫБЕРИТЕ идентификаторы_студентов ИЗ пакетов, ГДЕ 1319 В (идентификаторы_студентов)
or
ВЫБЕРИТЕ @student_ids := student_ids FROM пакетов b; ВЫБЕРИТЕ идентификаторы учащихся ИЗ пакетов, ГДЕ НАЙТИ_IN_SET (1319, @student_ids)
возвращает Null
Что мне не хватает? Я думаю, что мне нужно преобразовать первый результат в массив, но как?
Я попробовал предложения Даша (большое спасибо, Даш), но у меня все еще есть проблемы
Я также пробовал SELECT id FROM пакетов WHERE INSTR(','+1319+',', ','+CAST(student_ids AS CHAR) + ',')
как предложил Мэтт Эллен в другом сообщении - снова работает, только если первый элемент соответствует