MySQL <=> ( ). , TRUE FALSE NULL, NULL.
:
SELECT NULL=NULL
, NULL<=>NULL
, 1=NULL
, 1<=>NULL
, 1=0
, 1<=>0
, 1=1
, 1<=>1
:
NULL=NULL NULL<=>NULL 1=NULL 1<=>NULL 1=0 1<=>0 1=1 1<=>1
--------- ----------- ------ -------- ------ ----- ------ -----
(NULL) 1 (NULL) 0 0 0 1 1
. :
a <=> b
( a = b OR ( a IS NULL AND b IS NULL ) )
, , NULL- <=> ( ), :
SELECT `foo`
FROM `bar`
WHERE `a1` <=> :a1
AND `a2` <=> :a2
, ANSI , MySQL, :
SELECT `foo`
FROM `bar`
WHERE ( `a1` = :a1 OR ( `a1` IS NULL AND :a1d IS NULL ) )
AND ( `a2` = :a2 OR ( `a2` IS NULL AND :a2d IS NULL ) )
, . PDO . ( , PDO.) , , :a1 :a1d.)