Android sqlite ищет два столбца - PullRequest
0 голосов
/ 27 февраля 2019

Я немного запутался в поиске двух отдельных столбцов.Я использую sqlite.

Курсор курсор = qb.query (дБ, sqlSelect, "firstName LIKE? ИЛИ lastName LIKE?", Новая строка [] {"%" + name + "%", "%"+ name + "%"}, null, null, null);

Когда я ищу с помощью, скажем, Джо Боба, с этим запросом я могу сделать

'Джо' возвращает Джо Боб

«Боб» возвращает Джо Боба

Но не «Джо Боб»

Так что просто хочу найти способ поиска firstName '' lastName, но мне не повезло

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Вам нужен только 1 аргумент:

Cursor cursor = qb.query(
    db, 
    sqlSelect, 
    "firstName || ' ' || lastName LIKE ?", 
    new String[]{"%" + name + "%"}, 
    null, null, null
);
0 голосов
/ 27 февраля 2019

Похоже, что вы хотите объединить имена и фамилии.

Вы можете сделать это, используя ||, поэтому ваш базовый запрос может быть: -

SELECT firstName, lastName, firstName||' '||lastName AS name_in_full WHERE firstName LIKE ? OR lastName LIKE ?
  • что за?представляет значение в том виде, в котором оно было предоставлено (поэтому вышеизложенное, так как оно не будет работать должным образом).
  • Вы можете или не можете хотеть, чтобы столбцы firstName и lastName в результирующем Курсоре
  • курсор будет иметь столбец с именем name_in_full , и именно этот столбец объединит оба имени.

Для использования методом query , который вы зададите sqlВыберите , чтобы быть

sqlSelect = "firstName,lastName,firstName||' '||lastName AS name_in_full";

  • без указания имени и фамилии и соответствующей разделяющей запятой при необходимости

Альтернативная интерпретация вопроса

Если вы хотите найти только комбинацию из обоих, например, у вас есть строки, такие как

Bob Hope
Joe Joe
Bob Bob
Joe Bob

, и вы хотитенайдите строку 1 Джо Боба , т. е. Джо Боба , но никаких других строк вместо ИЛИ используйте И

т.е.

Cursor cursor = qb.query(
    db, 
    sqlSelect, 
    "firstName LIKE ? AND lastName LIKE ?", //<<<<<<<<<< OR change to AND
    new String[]{"%" + name + "%", "%" + name + "%"}, 
    null, null, null
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...