关于sql语句中条件语句where后的多个and/or的优先级

2020-01-14 数据库
  • 文章介绍
 摘要:
 
    SQL的WHERE子句中包含多个AND和OR
 
 示例:
 
    SQL解析器在处理操作时会优先处理and操作:
 
     假如有表product字段如下:id、product_id、product_price、product_name,现在要查找产品号为100或者101,并且价格大于200的商品,程序员可能会这样写:           

 select * from product where product_id = 100 or product_id = 101 and product_price > 200
 
    上述代码中,SQL解析器首先进行and 的操作,最后就成了这个意思:查找产品号为101且价格大于200或产品号为100 的商品。
 
 添加圆括号即可:
 
select * from product where (product_id = 100 or product_id = 101) and product_price > 200

 
 sql注入中的万能密码一般都会多加几个or,username' or 1=1 or 1=1 --+

上一篇:MySQL中的float和decimal类型

下一篇:mysql SELECT/UPDATE command denied to user 'root'@'localhost

专业的织梦模板定制下载站,在线购买后即可下载!

商业源码

跟版网模板,累计帮助5000+客户企业成功建站,为草根创业提供助力!

立刻开启你的建站之旅
QQ在线客服

服务热线

织梦建站咨询