Где в этом запросе стоит символ &

У меня простой вопрос,

В каком-то старом коде я обнаружил запрос, содержащий:

WHERE !(workassignment.flags&1)

Я никогда раньше не видел знак &, используемый в запросе.

Понятно, что запрос делает для меня, но что такое & sign и зачем мне использовать это в запросе.

2 ответа

Решение

& Означает побитовую операцию И (см. https://en.wikipedia.org/wiki/Bitwise_operation). Побитовое значение 1 (которое используется в выражении WHERE) вернет 1, когда самый правый бит в workassignment.flags установлен в 1, и в противном случае вернет 0.

Так 1 & 1 = 1 и 0 & 1 = 0

Это "побитовый И" тест - он проверяет, является ли наименее значимый бит workassignment.flags (не) установлен.

Другие вопросы по тегам