Zak*_*efi 6 sqlite string search android
我想在 cloumn“COLUMN_TITLE”中搜索表“TABLE_TOURS”中与“query”相似的词,并返回一个列表“List”。帮帮我吧
public List<Tour> getWordMatches(String query, String[] columns) {
String selection = ToursDBOpenHelper.COLUMN_TITLE + " MATCH ?";
String[] selectionArgs = new String[] {query+"*"};
return query(selection, selectionArgs, columns);
}
public List<Tour> query(String selection, String[] selectionArgs, String[] columns) {
Log.i(LOGTAG, "getwordsmatches result"+ selection +" "+ selectionArgs);
SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
builder.setTables(ToursDBOpenHelper.TABLE_TOURS);
Cursor cursor = builder.query(dbhelper.getReadableDatabase(),
columns, selection, selectionArgs, null, null, null);
Log.i(LOGTAG, "cursor of db result "+ cursor);
List<Tour> tours = cursorToList(cursor);
Log.i(LOGTAG, "tours are "+ tours);
if (cursor == null) {
return null;
} else if (!cursor.moveToFirst()) {
cursor.close();
return null;
}
return tours;
}
Run Code Online (Sandbox Code Playgroud)
及其 cursorToList 方法:
private List<Tour> cursorToList(Cursor cursor) {
List<Tour> tours = new ArrayList<Tour>();
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
Tour tour = new Tour();
tour.setId(cursor.getLong(cursor.getColumnIndex(ToursDBOpenHelper.COLUMN_ID)));
tour.setTitle(cursor.getString(cursor.getColumnIndex(ToursDBOpenHelper.COLUMN_TITLE)));
tour.setCate(cursor.getString(cursor.getColumnIndex(ToursDBOpenHelper.COLUMN_CATE)));
tour.setDetail(cursor.getString(cursor.getColumnIndex(ToursDBOpenHelper.COLUMN_DETAIL)));
tour.setDescription(cursor.getString(cursor.getColumnIndex(ToursDBOpenHelper.COLUMN_DESC)));
tour.setImage(cursor.getString(cursor.getColumnIndex(ToursDBOpenHelper.COLUMN_IMAGE)));
tours.add(tour);
}
}
return tours;
}
Run Code Online (Sandbox Code Playgroud)
为此,您可以使用 SQL LIKE 语句。在 SQL 中,% 字符表示任何包含 0 个或多个字符的字符串。因此,例如,你可以写
SELECT * FROM MY_TABLE WHERE COLUMN_NAME LIKE '%dog%'
Run Code Online (Sandbox Code Playgroud)
这将匹配任何包含“dog”的字符串,例如“dog”、“dogs”、“I like dogs”和“123dog321”。
您的确切参数会根据表的结构而有所不同,但这就是要点。
| 归档时间: |
|
| 查看次数: |
2596 次 |
| 最近记录: |