Mega Code Archive

 
Categories / MySQL / Where Clause
 

AND and OR may be intermixed

/* mysql> select * from Bird; +----------+-------+---------+------+------------+-------+ | name     | owner | species | sex  | birth      | death | +----------+-------+---------+------+------------+-------+ | BlueBird | Joe   | Car     | f    | 1999-03-30 | NULL  | | RedBird  | Yin   | Bus     | m    | 1979-03-30 | NULL  | +----------+-------+---------+------+------------+-------+ 2 rows in set (0.00 sec) mysql>  /*although AND has higher precedence than OR*/ mysql> SELECT * FROM Bird WHERE (species = 'Car' AND sex = 'm')     ->       OR (species = 'Bus' AND sex = 'f'); Empty set (0.00 sec) */ Drop table Bird; CREATE TABLE Bird (     name VARCHAR(20),      owner VARCHAR(20),     species VARCHAR(20),      sex CHAR(1),      birth DATE,      death DATE );    INSERT INTO  Bird VALUES ('BlueBird','Joe','Car','f','1999-03-30',NULL); INSERT INTO  Bird VALUES ('RedBird','Yin','Bus','m','1979-03-30',NULL);    select * from Bird;     /*although AND has higher precedence than OR*/    SELECT * FROM Bird WHERE (species = 'Car' AND sex = 'm')       OR (species = 'Bus' AND sex = 'f');