Как правильно сформулировать sql-запрос c двумя и более аргументами (SQLite)?

Существует таблица users, в которой есть поле name, tag и другие (не относящиеся к данной проблеме) .Нужно вывести записи только с необходимым тегом (tag) и если нужно отфильтровать (найти) нужную запись из предложенных. Как правильно написать sql-запрос c двумя аргументами?
final String tag =  intent.getStringExtra("tag");
final String[] selectionArgs = {tag};
            
userAdapter.setFilterQueryProvider(new FilterQueryProvider() {
@Override
 public Cursor runQuery(CharSequence constraint) {

         if (constraint == null || constraint.length() == 0) {

         return sqlHelper.database.rawQuery("select * from users where tag like ?selTag", null);
 //если не вводить текст показываются нужные записи                        
          }
            else {

              return sqlHelper.database.rawQuery("select * from users where tag like ?selTag and name like ?",
                        new String[] {"%" + constraint.toString() + "%"}); //не работает фильтрация 
                                                                                                           
// если с запроса убрать "tag like ?selTag" фильтрация успешно                                                                                                        
//осуществляется по всей таблице, не учитывая тег
                    }
                }
            });
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Естественно, что она не работает, вы же в запросе используете два параметра, но аргумент передаёте один. Второй элемент в массив аргументов добавьте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы