在 SQLite 数据库中搜索特定字符串 - Android SDK
Search for a specific string in an SQLite database - Android SDK
我在 Android SDK 中使用 SQLite 数据库,我知道这是一个非常简单的问题,但我在下面有以下功能。我正在尝试搜索用户名是否在 SQL 数据库中,但我想不出如何构建查询。
如果字符串“user”在 table“ACCOUNT_TABLE”
中,搜索的正确方法是什么
public boolean isUser(String user){
SQLiteDatabase db = this.getReadableDatabase();
String queryString = "SELECT " + COLUMN_USERNAME + " FROM " + ACCOUNT_TABLE + " WHERE " (???);
db.close();
/*if(found in database)
return true;
else
return false;*/
}
试试这个查询:
String queryString = "SELECT " + COLUMN_USERNAME + " FROM " + ACCOUNT_TABLE + " WHERE COLUMN_USERNAME like '%" +users+”%'”;
这里 COLUMN_USERNAME
是你的 database column
和
Users
是您要搜索的string
。
正确的方法是使用 rawQuery()
方法,它有两个参数:
- sql
SELECT
语句,其中 ?
个占位符代表您要传递的参数
- 一个
String
数组,包含 sql 语句的所有参数值,按照它们在
声明
rawQuery()
returns 一个 Cursor
你可以检查它是否包含任何行,如果它包含这意味着你搜索的 user
存在于 table:
public boolean isUser(String user) {
SQLiteDatabase db = this.getReadableDatabase();
String queryString = "SELECT 1 FROM " + ACCOUNT_TABLE + " WHERE " + COLUMN_USERNAME + " = ?";
Cursor c = db.rawQuery(queryString, new String[]{user});
boolean result = c.getCount() > 0;
c.close();
db.close();
return result;
}
我在 Android SDK 中使用 SQLite 数据库,我知道这是一个非常简单的问题,但我在下面有以下功能。我正在尝试搜索用户名是否在 SQL 数据库中,但我想不出如何构建查询。
如果字符串“user”在 table“ACCOUNT_TABLE”
中,搜索的正确方法是什么public boolean isUser(String user){
SQLiteDatabase db = this.getReadableDatabase();
String queryString = "SELECT " + COLUMN_USERNAME + " FROM " + ACCOUNT_TABLE + " WHERE " (???);
db.close();
/*if(found in database)
return true;
else
return false;*/
}
试试这个查询:
String queryString = "SELECT " + COLUMN_USERNAME + " FROM " + ACCOUNT_TABLE + " WHERE COLUMN_USERNAME like '%" +users+”%'”;
这里 COLUMN_USERNAME
是你的 database column
和
Users
是您要搜索的string
。
正确的方法是使用 rawQuery()
方法,它有两个参数:
- sql
SELECT
语句,其中?
个占位符代表您要传递的参数 - 一个
String
数组,包含 sql 语句的所有参数值,按照它们在 声明
rawQuery()
returns 一个 Cursor
你可以检查它是否包含任何行,如果它包含这意味着你搜索的 user
存在于 table:
public boolean isUser(String user) {
SQLiteDatabase db = this.getReadableDatabase();
String queryString = "SELECT 1 FROM " + ACCOUNT_TABLE + " WHERE " + COLUMN_USERNAME + " = ?";
Cursor c = db.rawQuery(queryString, new String[]{user});
boolean result = c.getCount() > 0;
c.close();
db.close();
return result;
}