2011-05-09 38 views
0

我實現sqlite3的查詢是如下:爲什麼AND條件不被檢查?

NSString *searchQry=[NSString stringWithFormat:@"SELECT id, title FROM ts_Gallary WHERE title LIKE '%%%@%%' OR location LIKE '%%%@%%' OR tags LIKE '%%%@%%' AND imageExistStatus = 1;",self.searchString, self.searchString, self.searchString]; 

我所有的OR條件下工作正常,但與部分沒有被選中,因爲它返回的行其羽imageExistStatus = 0了。

而我無法找出問題,所以請幫助我。

謝謝。在原始查詢

SELECT id, title FROM ts_Gallary WHERE (title LIKE '%%%@%%' OR location LIKE '%%%@%%' OR tags LIKE '%%%@%%') AND imageExistStatus = 1; 

基本上並且僅適用於tags LIKE '%%%@%%'條件:

+0

http://www.google.com/search?rlz=1C1_____enAU376AU376&sourceid=chrome&ie=UTF-8&q=operator+precedence#sclient=psy&hl=en&rlz=1C1_____enAU376AU376&source=hp&q=sql+operator+precedence&aq=f&aqi=&aql=&oq =&pbx = 1&bav = on.2,or.r_gc.r_pw。&fp = 6ab4216c4ada3168&biw = 1200&bih = 1835 – 2011-05-09 07:13:13

+1

您不需要所有這些百分號,「%」就像「。*」,所以「%%% 「 是相同的 」%」。 – 2011-05-09 07:17:58

回答

2

試試這個。

+0

其實,「基本上在你原來的查詢中AND只適用於標籤LIKE'%%% @ %%'」很難理解,請你詳細說明..? :P – rptwsthi 2011-05-09 07:28:28

+1

沒有括號的條件評估爲:title LIKE'%%% @ %%'或位置LIKE'%%% @ %%'OR(標籤LIKE'%%% @ %%'和imageExistStatus = 1),因爲運算符優先級規則的詳細信息,請參閱:http://msdn.microsoft.com/en-us/library/ms190276.aspx – 2011-05-09 07:36:05