2014-12-02 75 views
0

我創建搜索界面使用UNION搜索多個表。我的問題是,當我嘗試搜索該單詞時,最後一個表格中的數據是唯一不斷出現的內容。如何在條件符合的情況下正確搜索表格,名稱應該根據其第一個字母進行搜索。聯盟與WHERE子句 - Android的Eclipse的

這裏是我的代碼:

@Override 
     public void onTextChanged(CharSequence s, int start, int before, 
       int count) { 
      // TODO Auto-generated method stub 

      if (searchText.getText().toString().length() > 0) { 
       cursor = db.rawQuery("SELECT _id AS _id, name AS name, desc AS desc FROM comm_acc WHERE name LIKE ?" + 
         " UNION SELECT _id AS _id, name AS name, desc AS desc FROM comm_filems WHERE name LIKE ? " + 
         "UNION SELECT _id AS _id, name AS name, desc AS desc FROM comm_psu WHERE name LIKE ? " + 
         "UNION SELECT _id AS _id, name AS name, desc AS desc FROM comm_shells WHERE name LIKE ? " + 
         "UNION SELECT _id AS _id, name AS name, desc AS desc FROM comm_sic WHERE name LIKE ? " + 
         "UNION SELECT _id AS _id,name AS name, desc AS desc FROM comm_stp WHERE name LIKE ?", 
         new String[]{searchText.getText().toString() + "%"}); 
       adapter = new SimpleCursorAdapter(
       getActivity(), 
       R.layout.search_command_list_item, 
       cursor, 
       new String[] {"name", "desc"}, 
       new int[] {R.id.commandName, R.id.commandDesc}, 0); 
       setListAdapter(adapter); 

       } 
       else { 

       } 

     } 



    }); 

} 
+2

您在SQL查詢6個參數,但是你只提供一個在參數數組中。 – Rajesh 2014-12-02 15:40:17

+0

那麼我該如何解決它? :( – user3398666 2014-12-02 15:55:42

回答

0

未使用的參數得到NULL值;實際上只搜索comm_acc表。

你必須給六個參數的查詢:

String searchPattern = searchText.getText().toString() + "%"; 
cursor = db.rawQuery("SELECT ... ? ... ? ... ? ... ? ... ? ... ? ...", 
        new String[]{ searchPattern, searchPattern, searchPattern, 
            searchPattern, searchPattern, searchPattern }); 

或在所有喜歡使用相同的參數:

​​
+0

IT WORKED!THANKS !!! – user3398666 2014-12-03 02:38:14

+0

您能回答這個問題嗎?http://stackoverflow.com/questions/27263130/retrieve-information-using-union-android-eclipse?noredirect=1# – user3398666 2014-12-03 08:54:21

+0

@ user3398666那是怎麼回事不是重複的? – 2014-12-03 10:48:52