关键词搜索

源码搜索 ×
×

MySQL语句之or/and

发布2018-03-08浏览1589次

详情内容

在where中可以包含任意数目的and和or操作符,在没有任何其他符号的时候,

例如括号,SQL会首先执行and条件,然后才执行or语句

eg.    select * from table from id=1 or id=2 and price>=10;

这条语句默认执行的是id=2并且price大于等于10的,或者是id=1。

如果加上括号:select * from table from (id=1 or id=2) and price>=10;

则这条语句执行的是id=1或id=2,并且price大于等于10。


mysql 允许使用多个where子句,组合where子句允许使用两种方式使用:AND 和OR子句的方式使用. 
数据库中的操作符号:AND , OR , IN , NOT.

AND: 
SELECT * FROM products WHERE products.vend_id = 1003 AND products.prod_price <= 10;

OR: 
SELECT * FROM products WHERE products.vend_id = 1002 OR products.vend_id = 1003 ;

IN: 
建议能使用IN的子句中不使用OR,IN行性能好,方便理解. 
SELECT * FROM products WHERE products.vend_id IN (1002,1003);

NOT: 
Mysql对NOT的支持仅在对IN,BETWEEN,EXISTS子句取反,这与其他多数数据库对各种条件都支持不同. 
SELECT * FROM products WHERE products.vend_id NOT IN (1002,1003);

注意: 
在同时有AND和OR的子句中,mysql是优先处理AND操作的.一般建议使用()来确定处理顺序和消除歧义. 
比如: SELECT * FROM products WHERE (products.vend_id= 1002 OR products.vend_id=1003) AND prod_price >= 10;



转载:

http://blog.csdn.net/stypace/article/details/38346351

http://blog.csdn.net/u011479200/article/details/78513358

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载