Android 애플리케이션 내에서 sqlite 쿼리를 수행하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1243199

  •  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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top