Если я правильно понимаю, интерпретация данных типа BIT pre MySQL 5.0.3 означала, что он может использоваться как серия флагов? Если это так, я могу увидеть практические применения для него в MySQL, но представьте, что это было бы не так эффективно, как использование SET.
Даже если выше это не так, мне трудно понять, как текущая реализация типа данных BIT может быть практически применена в базе данных. Если кто-то сможет дать упрощенное объяснение и пример того, где он будет применим, я был бы признателен.
Я искал описания и примеры в других местах, но не смог найти примеры, применимые исключительно к базам данных.
Предположим, что у вас есть строка с полем свойств
Свойства, определенные как
1 - Has property 1
2 - Has property 2
4 - Has property 3
8 - Has property 4
назначить свойства 1 и 2 (то есть только 1 и 2 другие будут очищены)
set status = status & 3
добавить свойство 3
set status = status | 4
удалить свойство 1
set status = status | 14
Выберите строки со свойствами 1 и 2
SELECT.. ГДЕ (Свойства и 3) = 3
Выберите строки, в которых свойства 1 или 2
SELECT.. WHERE (Свойства и 1) = 1 ИЛИ (Свойства и 2) = 2