1DROP TABLE IF EXISTS t1; 2SELECT IF(NULL AND 1, 1, 2), IF(1 AND NULL, 1, 2); 3IF(NULL AND 1, 1, 2) IF(1 AND NULL, 1, 2) 42 2 5SELECT NULL AND 1, 1 AND NULL, 0 AND NULL, NULL and 0; 6NULL AND 1 1 AND NULL 0 AND NULL NULL and 0 7NULL NULL 0 0 8create table t1 (a int); 9insert into t1 values (0),(1),(NULL); 10SELECT * FROM t1 WHERE IF(a AND 1, 0, 1); 11a 120 13NULL 14SELECT * FROM t1 WHERE IF(1 AND a, 0, 1); 15a 160 17NULL 18SELECT * FROM t1 where NOT(a AND 1); 19a 200 21SELECT * FROM t1 where NOT(1 AND a); 22a 230 24SELECT * FROM t1 where (a AND 1)=0; 25a 260 27SELECT * FROM t1 where (1 AND a)=0; 28a 290 30SELECT * FROM t1 where (1 AND a)=1; 31a 321 33SELECT * FROM t1 where (1 AND a) IS NULL; 34a 35NULL 36set sql_mode='high_not_precedence'; 37select * from t1 where not a between 2 and 3; 38a 39set sql_mode=default; 40select * from t1 where not a between 2 and 3; 41a 420 431 44select a, a is false, a is true, a is unknown from t1; 45a a is false a is true a is unknown 460 1 0 0 471 0 1 0 48NULL 0 0 1 49select a, a is not false, a is not true, a is not unknown from t1; 50a a is not false a is not true a is not unknown 510 0 1 1 521 1 0 1 53NULL 1 1 0 54SET @a=0, @b=0; 55SELECT * FROM t1 WHERE NULL AND (@a:=@a+1); 56a 57SELECT * FROM t1 WHERE NOT(a>=0 AND NULL AND (@b:=@b+1)); 58a 59SELECT * FROM t1 WHERE a=2 OR (NULL AND (@a:=@a+1)); 60a 61SELECT * FROM t1 WHERE NOT(a=2 OR (NULL AND (@b:=@b+1))); 62a 63DROP TABLE t1; 64create table t1 (a int, b int); 65insert into t1 values(null, null), (0, null), (1, null), (null, 0), (null, 1), (0, 0), (0, 1), (1, 0), (1, 1); 66select ifnull(A, 'N') as A, ifnull(B, 'N') as B, ifnull(not A, 'N') as nA, ifnull(not B, 'N') as nB, ifnull(A and B, 'N') as AB, ifnull(not (A and B), 'N') as `n(AB)`, ifnull((not A or not B), 'N') as nAonB, ifnull(A or B, 'N') as AoB, ifnull(not(A or B), 'N') as `n(AoB)`, ifnull(not A and not B, 'N') as nAnB from t1; 67A B nA nB AB n(AB) nAonB AoB n(AoB) nAnB 68N N N N N N N N N N 690 N 1 N 0 1 1 N N N 701 N 0 N N N N 1 0 0 71N 0 N 1 0 1 1 N N N 72N 1 N 0 N N N 1 0 0 730 0 1 1 0 1 1 0 1 1 740 1 1 0 0 1 1 1 0 0 751 0 0 1 0 1 1 1 0 0 761 1 0 0 1 0 0 1 0 0 77select ifnull(A=1, 'N') as A, ifnull(B=1, 'N') as B, ifnull(not (A=1), 'N') as nA, ifnull(not (B=1), 'N') as nB, ifnull((A=1) and (B=1), 'N') as AB, ifnull(not ((A=1) and (B=1)), 'N') as `n(AB)`, ifnull((not (A=1) or not (B=1)), 'N') as nAonB, ifnull((A=1) or (B=1), 'N') as AoB, ifnull(not((A=1) or (B=1)), 'N') as `n(AoB)`, ifnull(not (A=1) and not (B=1), 'N') as nAnB from t1; 78A B nA nB AB n(AB) nAonB AoB n(AoB) nAnB 79N N N N N N N N N N 800 N 1 N 0 1 1 N N N 811 N 0 N N N N 1 0 0 82N 0 N 1 0 1 1 N N N 83N 1 N 0 N N N 1 0 0 840 0 1 1 0 1 1 0 1 1 850 1 1 0 0 1 1 1 0 0 861 0 0 1 0 1 1 1 0 0 871 1 0 0 1 0 0 1 0 0 88drop table t1; 89