Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

разбиение строки в SQL

Алексей Сеченых Профи (502), закрыт 7 лет назад
Есть две таблицы, в одной хранятся названия организаций и их id, а во второй есть поле в которое через ';' внесены id организаций от одной до всех.
Требуется запрос вытаскивающий эти id и проводить соответсвие с фактическим названием
Лучший ответ
Сергей Атяпшев Мастер (1058) 7 лет назад
Во первых: не слушай местных "авторитетов". Гуру и Профи они только здесь.
Во вторых была схожая задача:
select ug_id, ug_name from "USER&GROUP" where ug_id=:ug_id or POSITION(','||ug_id||',',','||(select group_list from "USER&GROUP" where ug_id=:ug_id)||',')>0
Только у меняID разделены через запятую. Разберешься
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (431437) 7 лет назад
> а во второй есть поле в которое через ';' внесены id организаций от одной до всех
Это мудозвонство. Сделай нормальные связи и не извращайся таким образом больше никогда вообще. "Запросом" в твоем случае будет скрипт, который разберет твою строку на составляющие, занесет их в таблицу связей и сотрет нахрен этот столбец вообще.
Андрей Высший разум (437505) 7 лет назад
Действительно, бред. Такая связь между таблицами делается с помощью вспомогательной таблицы, содержащей 2 поля: id первой таблицы и id второй таблицы. И в этой вспомогательной таблице перечислены все актуальный комбинации. Вот в этом случае всё можно делать нормальными запросами. А твой вариант - это удаление гланд через жопу.
Алексей СеченыхПрофи (502) 7 лет назад
Только это не мой вариант, на какую базу посадили с той и приходится мучаться, а так как часть софта уже подвязано именно на такую базу, переработка структуры тоже не простое будет занятие, поэтому я все варианты рассматриваю
Андрей Высший разум (437505) Тогда действительно проще загружать данные в скрипт и уже там их анализировать / обрабатывать.
Дмитрий Кораблин Просветленный (35595) 7 лет назад
схему базы или куска с нужными таблицы выложил бы
Юрий Краузе Гуру (2738) 7 лет назад
Нужно смотреть диаграмму связей таблиц, если их нет, то установить первичные и вторичные ключи
Затем посмотреть примеры JOIN
Полосатый жираф Алик Искусственный Интеллект (313008) 7 лет назад
"...а во второй есть поле в которое через ';' внесены id организаций от одной до всех." Такое только идиот мог придумать!
- - Знаток (438) 7 лет назад
перепроектируйте таблицы, и забейте данные заново.
Похожие вопросы