У меня есть старый дизайн базы данных, с которым я работаю, использующий битовые маски. У меня есть таблица с адресами электронной почты и битовой маской на основе другой таблицы, и мне было поручено написать запрос SQL, который «разбивает» эти битовые маски. Как правило, эти данные просматриваются по-разному, где мы используем побитовое и определить, действительна ли битовая маска, но на этот раз это не так ...
В упрощенной версии моих данных я имею 2 поля примерно так.
|---------------------|------------------|
| Email | bitMask |
|---------------------|------------------|
| test@test.com | 3 |
|---------------------|------------------|
| test2@test.com | 9 |
|---------------------|------------------|
Вывод, который я в конечном итоге ищу, покажет, какие "степени 2" или какие "биты" потребуются, чтобы получить битовую маску, чтобы я мог дать перекрестную ссылку значения маски в другой таблице. Итак, мой пример вывода выглядит примерно так:
|---------------------|------------------|
| Email | value |
|---------------------|------------------|
| test@test.com | 2 |
|---------------------|------------------|
| test@test.com | 1 |
|---------------------|------------------|
| test2@test.com | 8 |
|---------------------|------------------|
| test2@test.com | 1 |
|---------------------|------------------|
Это противоположный способ, которым я привык иметь дело с битовыми масками. Если кто-нибудь знает, как go написать этот запрос, любой совет приветствуется.