資料庫中有城市庫表,其中有國家、省、城市。 舉例:在廣東省內(包含廣東省本身),找出名稱為“廣州”的記錄 首先,廣東省內的條件是:ParentId = 2 Or Id =2 名稱為“廣州”的條件是:Name='廣州' 合併後: SELECT * FROM dbo.CityWHERE ParentId ...
資料庫中有城市庫表,其中有國家、省、城市。
舉例:在廣東省內(包含廣東省本身),找出名稱為“廣州”的記錄
首先,廣東省內的條件是:ParentId = 2 Or Id =2
名稱為“廣州”的條件是:Name='廣州'
合併後:
SELECT * FROM dbo.City
WHERE ParentId = 2 OR Id = 2 AND Name='廣州'
但是結果如下:
出現上面結果的原因是因為Or的優先順序比And低,上面的SQL等效於:
SELECT * FROM dbo.City
WHERE ParentId = 2 OR (Id = 2 AND Name='廣州')
而我們需要的是在第一條件滿足的情況下,同時滿足第二個條件的數據。
SELECT * FROM dbo.City
WHERE (ParentId = 2 OR Id = 2) AND Name='廣州'
使用括弧把多個小條件合併為一個大的條件。