0

Hye..複数のキーワードを使用して検索する検索機能を作成することができました。問題は、設定したデータベース列内にキーワードが存在する必要があることです。データベース内で2つのキーワードが一致する3つのキーワードを使用して検索すると、さらに1つのキーワードが存在しません。結果は何も表示されませんでした。

存在しないキーワードを無視するにはどうすればよいですか?? 私のデータベース内に存在するキーワードのみを取得してください。つまり、ユーザーが多くのキーワードを入力すると、システムはデータベース内で一致するキーワードのみを読み取り、一致しないキーワードは無視します。以下は私のコードです。

String s = txtLelaki.getText().toString();
                String s = txtLelaki.getText().toString();
                String[] words = s.split(" ");
                String sql = null;

                String where = helper.KEY_LELAKI + " = ?";
                String relation = " or ";
                String wildcard1 = "'%";
                String wildcard2 = "%'";

                StringBuilder build = null;
                for(int i=0;i<words.length; i++)
                {
                    words[i] = new StringBuilder(wildcard1).append(words[i]).append(wildcard2).toString();
                    if(i==0)
                        build = new StringBuilder(where);
                    else
                        build.append(relation).append(where);                       
                }

                Cursor c = database.query(helper.DB_TABLE_LELAKI, null, build.toString(), words, null, null, null);


                if(c!= null)
                {
                    c.moveToFirst();
                    int soalanColumn = c.getColumnIndex(helper.MASALAH_LELAKI);
                    int getId = c.getColumnIndex(helper.ID_LELAKI);
                    if(c.isFirst())
                    {
                        do
                        {
                            idList.add(c.getLong(getId));
                            results.add(c.getString(soalanColumn));


                        }while(c.moveToNext());
                    }

                }

                adapter.updateList(results);
                listView.setTextFilterEnabled(true);

            }//end try

                catch(SQLException e)
                {
                    Log.v("caer", e.toString());    
                }
4

1 に答える 1