/ / отримати один біт за індексом з бітового поля, mysql - mysql, bit, bit-fields

отримати один біт за індексом з бітового поля, mysql - mysql, bit, bit-fields

Чи є спосіб отримати один біт (або bool) з бітового поля в mysql?

Єдине рішення, яке я придумав, це використовувати наступне: Я хочу, щоб бітове значення в позиції три.

SELECT bit_count(bin(column) & b"100") AS bitValue FROM table;

Вихідні дані цього запиту є або одним, або aнуль. Але це не виглядає так приємно. Чи є кращий спосіб отримати бітове значення в конкретній позиції в бітовому полі? Читання бітових значень буде зроблено сильно на моєму веб-додатку, ви думаєте, що спосіб отримання значення, яке я використовував вище буде проблемою для продуктивності? я маю на увазі як біт-кількість, так і оператор BIN () і "і".

Я шукаю щось на кшталт:

SELECT column(3) FROM table;

Дякую за читання!

Маттіас.

Відповіді:

2 для відповіді № 1

Якщо ви турбуєтеся про продуктивність читання ібіт ви зацікавлені в фіксованому, спробуйте витягти біт і вставити його в булевий колонку. Якщо біт, який ви намагаєтеся витягти, є динамічним, я думаю, що ваші рішення є оптимальними.