zoukankan      html  css  js  c++  java
  • SQL Where语句中AND与OR的计算次序 .

    AND 用在where子句中,用来指示检索满足所有给定条件的行,而OR用在where子句中,用来指示检索匹配任一给定条件的行。

    Where子句中可包含任意数目的AND和OR操作符号,但是要注意在SQL规范中AND操作符的优先级要高于OR操作符。

    若一时大意,操作符就会被错误组合,查询出来的结果也是与自己期望南辕北辙了。

    假如需要列出价格为5元以上且由瑞兴生物制药公司或星城制药厂生产的所有产品

    1. Select prod_name,prod_price From Products Where supply like '瑞兴%' or supply like '星城%' And prod_price>=10  
    Select prod_name,prod_price From Products Where supply like '瑞兴%' or supply like '星城%' And prod_price>=10
    1. prod_name                 prod_price  
    prod_name                 prod_price
    1. 苯唑西林钠(苯唑青霉素)        6.50  
    2. 头孢氨苄                       13.50  
    3. 头孢羟氨苄                     8.00  
    4. 硫酸庆大霉素                   15.00  
    5. 红霉素                         5.50  
    苯唑西林钠(苯唑青霉素)        6.50
    头孢氨苄                       13.50
    头孢羟氨苄                     8.00
    硫酸庆大霉素                   15.00
    红霉素                         5.50


    这个查询的结果与自己期望的结果不一致。

    1. 硫酸庆大霉素                   15.00  
    硫酸庆大霉素                   15.00


    此问题就是由于使用OR、AND操作符默认计算次序造成的,解决的方法就是使用括号明确地分组相应的操作符。

    1. 任何时候使用具有AND和OR操作的where子句,都应该使用括号明确地分组操作符消除歧义,不要过分的依赖默认计算次序。  
  • 相关阅读:
    开发之前的思考-UI结构设计
    UI事件监听的击穿
    实战开发中UI资源制作标准
    巧用九宫格以减少UI资源量
    UI元素的相对自适应
    UI开发核心问题-UI随屏幕自适应
    制作滚动视图(ScrollView)
    制作复选框(Toggle)
    制作下拉菜单(PopupList)
    制作输入框(Input)
  • 原文地址:https://www.cnblogs.com/prvin/p/3358971.html
Copyright © 2011-2022 走看看