Как найти список строк, которые содержат любой из заданных INT в столбце, который содержит INT как значения, разделенные запятыми - PullRequest
0 голосов
/ 11 июля 2011

У меня есть случай, когда мы поддерживаем таблицу, содержащую ресурсы.В этой таблице есть столбец varchar, который содержит идентификаторы ролей в виде значений, разделенных запятыми (я знаю, что нормализация ДОЛЖНА быть способом, но не может изменить долго работающую систему).Например, столбец role_ids содержит «1,4,6,9,10», а другая строка содержит «5,10,15».

Затем для пользователя в системе у меня есть связанные идентификаторы ролей в виде списка.например 4,15.Теперь мне нужно найти «любой во многих», то есть любой ресурс, который может иметь любой из идентификаторов ролей, представленных в столбце resource.role_ids.

Этот вопрос похож на этот ,но ожидаемое решение не ожидается в Grails.

Я ищу решение MySQL - либо запрос, либо хранимую процедуру.Хотя найти набор ресурсов можно было бы с помощью FIND_IN_SET (), но не нужно выполнять несколько обращений к БД с каждым из списка role_id пользователя.

1 Ответ

1 голос
/ 11 июля 2011

Используйте функцию типа эту , чтобы превратить ваши списки в отдельные записи, а затем объединить все как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...