2011-07-01 98 views
2

嵌套和/或表達我需要做一個查詢,如:亞音速2.2

SELECT * from TABLE 
    WHERE cola= "aaa" 
     and 
     (
      (colb = "bbb" and (colc="ccc" or colc = "ddd")) 
      or 
      (colb="eee" and colc = "fff") 
     ) 

我試圖與Andexpression()orexpression()openexpression()closeexpression(),但我不能看着辦吧! 任何幫助,將不勝感激!

回答

1

WhereExpression,AndExpression等應該可以工作(另請參閱this question),但它對我一直都不起作用。

只要你Where條款相對簡單,你可以添加一些重複和使用邏輯運算符的優先級

SELECT * from TABLE 
    WHERE cola="aaa" AND colb="bbb" AND colc="ccc" 
      OR 
      cola="aaa" AND colb="bbb" AND colc="ddd" 
      OR 
      cola="aaa" AND colb="eee" AND colc="fff" 

這將導致這樣的事情:

DB.Select().From<TABLE>() 
    .Where(TABLE.colaColumn).isEqualTo("aaa") 
     .And(TABLE.colbColumn).isEqualTo("bbb") 
     .And(TABLE.colcColumn).isEqualTo("ccc") 
    .Or(TABLE.colaColumn).isEqualTo("aaa") 
     .And(TABLE.colbColumn).isEqualTo("bbb") 
     .And(TABLE.colcColumn).isEqualTo("ddd") 
    .Or(TABLE.colaColumn).isEqualTo("aaa") 
     .And(TABLE.colbColumn).isEqualTo("eee") 
     .And(TABLE.colcColumn).isEqualTo("fff") 
+0

那是什麼我結束了......謝謝 – Chris