2014-12-02 87 views
-3

的內容,我需要在源碼(安卓),它看起來像SQLite的查詢來搜索3列

執行查詢

SELECT * FROM表,其中名1 =「名」或名稱2 =「名」或NAME3 =「名稱」

我的代碼是:

String where = SYMPTOM1 + "= \"" + symp1 + "\" " + "or " 
        + SYMPTOM2 + " = \" " + symp1 + " \" " + "or " + SYMPTOM3 + " = \" " 
       + symp1 + " \" "; 

cursor = mDb.query(false, TABLE_NAME, COLUMNS, where, null, null, 
       null, null, null); 

此代碼檢索出姓名1 =名稱...不執行或部分價值。

回答

1

你插入額外的空格NAME2和NAME3值是這樣的:

"\" " + symp1 + " \"" 

通知symp1和關閉的引號之間的空間。

要解決這個問題和其他一些問題,請考慮使用?佔位符並綁定參數。

String where = SYMPTOM1 + "= ? or " 
       + SYMPTOM2 + " = ? or " + SYMPTOM3 + " = ?"; 
String whereArgs[] = new String[] { symp1, symp1, symp1 }; 
cursor = mDb.query(false, TABLE_NAME, COLUMNS, where, whereArgs, null, 
      null, null, null); 
+0

謝謝@laalto。這種情況下的語法是什麼。 串x = SYMPTOM1 + 「= \」 「+ symp1 + 」\「 」+ 「或」 + SYMPTOM2 \t \t \t \t +「= \」 「+ symp1 +」 \」 「+ 」或「 + SYMPTOM3 +」 = \「」 \t \t \t \t + symp1 +「\」「; \t \t序列Y = SYMPTOM1 + 「= \」 「+ symp2 + 」\「 」+ 「或」 + SYMPTOM2 \t \t \t \t +「= \」 「+ symp2 +」 \」「+ 」或「 + SYMPTOM3 +「= \」「 \t \t \t \t + symp2 +」\「」; \t \t String where =「(」+「(」+ x +「)」+「and」+「(」+ y +「)」+「)」; \t \t光標光標= mDb.query(假,TABLE_NAME列,其中,空時, \t \t \t \t NULL,NULL,NULL,NULL); – user1661908 2014-12-02 10:48:36