получить один бит по индексу из битового поля, MySQL - PullRequest
2 голосов
/ 06 декабря 2011

Есть ли способ получить один бит (или bool) из битового поля в mysql?

Единственное решение, которое я нашел, - это использовать следующее: я хочу, чтобы значение бита было в позиции три.

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

Выходные данные этого запроса - либо единица, либо ноль. Но это не выглядит так красиво. Есть ли лучший способ получить значение бита в определенной позиции в битовом поле? Чтение значений битов было бы в значительной степени сделано в моем веб-приложении. Как вы думаете, способ получения значения, которое я использовал выше, будет проблемой для производительности? я имею в виду как bit_count, так и оператор BIN () и "and" ..

Я ищу что-то вроде:

SELECT column(3) FROM table;

Спасибо за чтение!

Маттиас.

1 Ответ

2 голосов
/ 25 декабря 2011

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

...