AND操作符
把两个过滤条件组合起来用AND,每添加一条就使用一个AND
select column_name1, column_name2, column_name3 from table_name where column_name1=1 and column_name2=2;
OR操作符
检索匹配任一条件的行:
select column_name1, column_name2, column_name3 from table_name where column_name1=1 OR column_name2=2;
计算顺序
AND优先级>OR优先级,因此需善用括号
select column_name1, column_name2 from table_name where ( column_name1=1 OR column_name1=2) AND column_name2=999;
IN操作符
IN指定条件范围,范围内的每个条件都可以进行匹配。IN取合法值的由逗号分隔的列表。
select column_name1, column_name2 from table_name where column_name1 IN (100,101,102) order by column_name1;
select column_name1, column_name2 from table_name where column_name1=100 OR column_name1=101 OR column_name1=102 order by column_name1;
上面两个语句中IN和OR结果相同,但是IN操作符的优点:
1)使用长的合法项清单时,IN的语法更清楚直观;
2)使用IN时,计算的次序更容易管理(操作符更少);
3)IN一般比OR执行更快;
4)IN最大的优点是可以包含其他SELECT语句,使得能够更动态地建立where子句。
NOT操作符
NOT用于否定它之后的任何条件
select column_name1, column_name2 from table_name where column_name1 NOT IN (100,101,102) order by column_name1;
TIPS:
MySQL支持使用NOT对IN,BETWEEN,EXISTS子句取反。
