Android 애플리케이션 내에서 sqlite 쿼리를 수행하는 방법은 무엇입니까?
-
12-09-2019 - |
문제
이 쿼리를 Android 데이터베이스에서 사용하려고하지만 데이터를 반환하지 않습니다. 내가 뭔가를 놓치고 있습니까?
SQLiteDatabase db = mDbHelper.getReadableDatabase();
String select = "Select _id, title, title_raw from search Where(title_raw like " + "'%Smith%'" +
")";
Cursor cursor = db.query(TABLE_NAME, FROM,
select, null, null, null, null);
startManagingCursor(cursor);
return cursor;
해결책
이것은 필요한 커서를 반환합니다
Cursor cursor = db.query(TABLE_NAME, new String[] {"_id", "title", "title_raw"},
"title_raw like " + "'%Smith%'", null, null, null, null);
다른 팁
또는 DB.RAWQUERY (SQL, SelectionArgs)가 존재합니다.
Cursor c = db.rawQuery(select, null);
일치하려는 패턴이 변수 인 경우에도 작동합니다.
dbh = new DbHelper(this);
SQLiteDatabase db = dbh.getWritableDatabase();
Cursor c = db.query("TableName", new String[]{"ColumnName"}
, "ColumnName LIKE ?" ,new String[]{_data+"%"}, null, null, null);
while(c.moveToNext())
{
// your calculation goes here
}
쿼리를 설정하는 방법을 상기시키기 위해 여기에 왔지만 기존 예제는 따라 가기가 어려웠습니다. 다음은 더 많은 설명이있는 예입니다.
SQLiteDatabase db = helper.getReadableDatabase();
String table = "table2";
String[] columns = {"column1", "column3"};
String selection = "column3 =?";
String[] selectionArgs = {"apple"};
String groupBy = null;
String having = null;
String orderBy = "column3 DESC";
String limit = "10";
Cursor cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);
매개 변수
table
: 쿼리하려는 테이블의 이름columns
: 반환하려는 열 이름입니다. 필요하지 않은 데이터를 반환하지 마십시오.selection
: 열에서 반환하려는 행 데이터 (이것은 where 절입니다.)selectionArgs
: 이것은 대체됩니다?
에서selection
위의 문자열.groupBy
그리고having
:이 그룹은 특정 조건이있는 데이터가있는 열에서 데이터를 복제합니다. 불필요한 매개 변수는 null로 설정할 수 있습니다.orderBy
: 데이터를 정렬하십시오limit
: 반환 할 결과 수를 제한합니다
이것을 시도하십시오. 이것은 내 코드 이름에 대해 작동합니다. 문자열입니다.
cursor = rdb.query(true, TABLE_PROFILE, new String[] { ID,
REMOTEID, FIRSTNAME, LASTNAME, EMAIL, GENDER, AGE, DOB,
ROLEID, NATIONALID, URL, IMAGEURL },
LASTNAME + " like ?", new String[]{ name+"%" }, null, null, null, null);
제휴하지 않습니다 StackOverflow