Показать сообщение отдельно

  #697  
Старый 27.07.2009, 18:07
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
С нами: 8915117

Репутация: 389
По умолчанию

ибо здесь двоякая ситуация => разные версия мускуля по разному реагируют

Код:
NOT, !
Logical NOT. Evaluates to 1 if the operand is 0, to 0 if the operand is non-zero, and NOT NULL returns NULL.
т.е.
Код:
mysql> SELECT * FROM test;
+----+----------+
| id | num      |
+----+----------+
|  1 |      148 |
|  2 | 68767867 |
+----+----------+
2 rows in set (0.00 sec)
Код:
mysql> SELECT * FROM test WHERE NOT(id)=null;
Empty set (0.00 sec)

mysql> SELECT * FROM test WHERE !(id)=null;
Empty set (0.00 sec)
Код:
mysql> SELECT * FROM test WHERE NOT(id)=false;
+----+----------+
| id | num      |
+----+----------+
|  1 |      148 |
|  2 | 68767867 |
+----+----------+
2 rows in set (0.00 sec)

mysql> SELECT * FROM test WHERE !(id)=false;
+----+----------+
| id | num      |
+----+----------+
|  1 |      148 |
|  2 | 68767867 |
+----+----------+
2 rows in set (0.00 sec)
Код:
mysql> SELECT * FROM test WHERE NOT(id)=true;
+----+----------+
| id | num      |
+----+----------+
|  2 | 68767867 |
+----+----------+
1 row in set (0.00 sec)

mysql> SELECT * FROM test WHERE !(id)=true
Empty set (0.00 sec)
Вывод:
WHERE NOT id=2 интерпретируется как id!=2
WHERE ! id=2 интерпретируется как !(id=2)

p.s. моя версия - 5.1.35

Последний раз редактировалось FireFenix; 27.07.2009 в 18:09..
 
Ответить с цитированием