sqlite查询以多个关键字搜索数据库

时间:2018-09-24 09:02:53

标签: android sqlite android-sqlite

我使用了类似于以下代码的代码来搜索数据库人员姓名:

cursor.query(select column from Table where column_person_Name="John");

但是现在我想一起搜索几个人的名字,怎么做?

5 个答案:

答案 0 :(得分:1)

您可以使用$ echo $FILENAME | cut -c5- | rev | cut -c5- | rev 条件

IN

答案 1 :(得分:1)

使用SQlite的方法是使用IN

SELECT * FROM persons WHERE name IN ("John", "Doe");

在Java中,具有一个字符串数组,您可以那样做:

final String[] namesArray = {"John", "Doe"};

// Pad the Strings with quotes: John -> 'John'
for (int i = 0; i < namesArray.length; i++) {
    namesArray[i] = "'" + namesArray[i] + "'";
}

// Join the Strings: 'John', 'Doe'
final String names = TextUtils.join(",", namesArray);
final String query = "SELECT * FROM persons WHERE name IN ("+names+")";

结果是:

SELECT * FROM persons WHERE name IN ('John','Doe')

答案 2 :(得分:0)

通过使用OR运算符;

return $items;

这里是一个例子;

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

答案 3 :(得分:0)

针对您问题的其他解决方案可以是使用like关键字,在该关键字的基础上,您可以基于search获得多个结果。

像在应用程序的部分已知数据中使用。

 SELECT
   column_list
FROM
   table_name
WHERE
  column_1 LIKE %yoursearch_word%;

答案 4 :(得分:0)

Room支持将Collections作为查询参数。

在房间中查询就像:

@Query("SELECT first_name, last_name FROM user WHERE region IN (:regions)")
public List<NameTuple> loadUsersFromRegions(List<String> regions);

查看official 指南。