6.3.1.3 Логические операторы

Все логические операторы дают в результате значения 1 (ИСТИНА), 0 (ЛОЖЬ) или NULL (неустановленное, которое в большинстве случаев принимается как ЛОЖЬ):

NOT
!
Логическое НЕ. Возвращает 1, если операнд равен 0, в противном случае - 0. Исключение: NOT NULL определяется как NULL:
mysql> SELECT NOT 1;
        -> 0
mysql> SELECT NOT NULL;
        -> NULL
mysql> SELECT ! (1+1);
        -> 0
mysql> SELECT ! 1+1;
        -> 1
Последний пример дает 1, поскольку данное выражение вычисляется тем же способом, что и (!1)+1.
OR
||
Логическое ИЛИ. Возвращает 1, если любой из операндов не равен ни 0, ни NULL:
mysql> SELECT 1 || 0;
        -> 1
mysql> SELECT 0 || 0;
        -> 0
mysql> SELECT 1 || NULL;
        -> 1

AND
&&
Логическое И. Для операндов, значение которых не равно NULL, дает 1, если оба операнда ненулевые, и 0 - в противном случае. Возвращает NULL, если один из операндов равен NULL:
mysql> SELECT 1 && 1;
        -> 1
mysql> SELECT 1 && 0;
        -> 0
mysql> SELECT 1 && NULL;
        -> NULL