Запрос MySQL с битом и оператором


У меня есть база данных, которая сохраняет пользовательские настройки в двоичном формате.

Chips = 1;
Pizza = 2;
Chinese = 4;

Например, если пользователь любит фишки, то его предпочтение будет равно 1. Если они любят пиццу, их предпочтение будет 2. Если нравится и то и другое, их предпочтение будет 3. Если они любят китайскую еду и чипсы, но не пиццу, то их предпочтение будет 5.

Мне нужно создать запрос mysql, где я могу выбрать всех пользователей, которые не любят пиццу. Я попытался решить эту проблему, но я нахожу отсутствие документов для использование bit и в предложении where:

Логически это имеет смысл для меня, но это неправильно:

SELECT * FROM `User` WHERE BIT_AND(preferences,2) != 2;
1 2

1 ответ:

SELECT * FROM `User` 
WHERE preferences & 2 = 0

Источник

Sqlfiddle demo