Во-первых, я не смог придумать правильное название, предложения приветствуются.
У меня есть база данных, в которой хранятся пользователи и группы. пользователи могут входить в состав нескольких групп, и группы имеют определенный уровень «authorLevel». Уровень авторизации - это целое число, двоичная форма которого представляет полномочия (5 - 101, поэтому у вас есть полномочия для первого и третьего варианта, но нет для второго).
Запрос, который я сделал, проверяет ваш уровень полномочий, проверяет все группы и выбирает самый высокий уровень полномочий.
но это, конечно, не работает (если у вас есть уровень полномочий 3 (110) из одной группы и уровень полномочий 5 (101) из другой группы, то у вас должен быть уровень полномочий 7 (111), но он выберет макс, что 5).
Есть ли способ, которым я могу сделать функцию, которую я могу поставить в запросе, который просматривает двоичное представление каждый раз, когда находит значение, а затем возвращает правильный уровень полномочий?
(например, функция MAX просматривает все найденные значения и сравнивает их)
текущий запрос "ВЫБЕРИТЕ МАКС. (ManagementAuthorityLevel) КАК УРОВЕНЬ ОТ ПОЛЬЗОВАТЕЛЯ ВНУТРЕННЕГО СОЕДИНЕНИЯ CTgroupUser gu на u.ID = gu.user ВНУТРЕННЕЕ РЕШЕНИЕ group
g ON gu.group = g.name WHERE u.ID =: ID; "
with: ID является параметром оператора PHP PDO
логическая модель
потому что это не единственное место, где мне это нужно, я бы хотел сделать это без использования процедуры.
спасибо за чтение