Android 使用sqlite查询搜索具有多个关键字的数据库

Android 使用sqlite查询搜索具有多个关键字的数据库,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我使用了类似于以下代码的代码来搜索数据库人名: cursor.query(select column from Table where column_person_Name="John"); 但是现在我想一起搜索几个人的名字,怎么做?使用OR操作符 SELECT column1, column2, ... FROM table_name WHERE condition1 OR condition2 OR condition3 ...; 这里是一个例子 cursor.rawQuery("sel

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

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

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

使用OR操作符

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
这里是一个例子

cursor.rawQuery("select column from Table where column_person_Name='John' OR column_person_Name='Bob');

使用OR运算符

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
这里是一个例子

cursor.rawQuery("select column from Table where column_person_Name='John' OR column_person_Name='Bob');

您可以在条件下使用

SELECT *
FROM Table
WHERE column_person_Name IN ('Name1', 'Name2', 'Name3');

您可以在
条件下使用

SELECT *
FROM Table
WHERE column_person_Name IN ('Name1', 'Name2', 'Name3');

您的问题的其他解决方案可以是,使用
like
关键字,根据
搜索得到多个结果

Like用于应用程序的部分已知数据

 SELECT
   column_list
FROM
   table_name
WHERE
  column_1 LIKE %yoursearch_word%;

您的问题的其他解决方案可以是,使用
like
关键字,根据
搜索得到多个结果

Like用于应用程序的部分已知数据

 SELECT
   column_list
FROM
   table_name
WHERE
  column_1 LIKE %yoursearch_word%;

使用SQlite的方法是在
中使用

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+")";

使用SQlite的方法是在
中使用

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+")";

文件室支持将集合作为查询参数

房间中的查询类似于:

@Query("SELECT first_name, last_name FROM user WHERE region IN (:regions)")
public List<NameTuple> loadUsersFromRegions(List<String> regions);
@Query(“从区域所在的用户(:regions)中选择first\u name和last\u name”)
公共列表加载用户来自区域(列表区域);

检查导向装置

Room支持将集合作为查询参数

房间中的查询类似于:

@Query("SELECT first_name, last_name FROM user WHERE region IN (:regions)")
public List<NameTuple> loadUsersFromRegions(List<String> regions);
@Query(“从区域所在的用户(:regions)中选择first\u name和last\u name”)
公共列表加载用户来自区域(列表区域);

检查导向装置

你是说你有一个名字列表,你想得到所有与其中一个名字匹配的结果吗?@MarkusPenguin哦,对不起,我想搜索名字列表你是说你有一个名字列表,你想得到所有与其中一个名字匹配的结果吗?@MarkusPenguin哦,对不起,我想搜索名字列表