Sqlite에서 마지막 기록을 얻는 방법?
나는 하나의 테이블 question_table
과 하나 ImageButton
( 뒤로 )가 있습니다. 뒤로를 클릭 한 후 데이터베이스에서 마지막으로 삽입 된 레코드를 가져와야 합니다.
내 행이 다음과 같은 열이 포함되어 : question
, optionA
, optionB
, optionC
, optionD
, 나는 내에서 사용하기위한 데이터가 필요 Activity
. 데이터베이스에 한 가지 방법을 만들었지 만 작동하지 않습니다.
다음은 참조 용 코드입니다.
MySQLiteHelper.java 추출 :
public List<ObjectiveWiseQuestion> getLastInsertQuestion()
{
// long index = 0;
List<ObjectiveWiseQuestion>LocwiseProfileList=new ArrayList<ObjectiveWiseQuestion>();
db = getReadableDatabase();
Cursor cursor = db.query(
"sqlite_sequence",
new String[]{"seq"},
"name = ?",
new String[]{TABLE_QUESTION},
null,
null,
null,
null );
if (cursor.moveToFirst())
{
do {
ObjectiveWiseQuestion owq= new ObjectiveWiseQuestion();
owq.setQuestion(cursor.getString(2));
owq.setOptionA(cursor.getString(3));
owq.setOptionB(cursor.getString(4));
owq.setOptionC(cursor.getString(5));
owq.setOptionD(cursor.getString(6));
owq.setCorrectOption(cursor.getString(7));
LocwiseProfileList.add(owq);
} while(cursor.moveToNext());
db.close();
}
return LocwiseProfileList;
}
OnClickListner
에서 AddQuestionActivity.java
imgBack.setOnClickListener( new View.OnClickListener()
{
@Override
public void onClick(View v)
{
msg();
emptyFormField();
try {
final List<ObjectiveWiseQuestion> LocWiseProfile = db.getLastInsertQuestion();
for (final ObjectiveWiseQuestion cn : LocWiseProfile)
{
db=new MySQLiteHelper(getBaseContext());
db.getWritableDatabase();
txtQuestion.setText(cn.getQuestion());
txtOptionA.setText(cn.getOptionA());
txtOptionB.setText(cn.getOptionB());
txtOptionC.setText(cn.getOptionC());
txtOptionD.setText(cn.getOptionD());
txtCorrectOption.setText(cn.getCorrectOption());
db.close();
}
} catch(Exception e) {
e.printStackTrace();
}
}
});
힌트를주세요.
이 시도:
SELECT *
FROM TABLE
WHERE ID = (SELECT MAX(ID) FROM TABLE);
또는
다음 솔루션을 사용할 수도 있습니다.
SELECT * FROM tablename ORDER BY 열 DESC LIMIT 1;
정답이 약간 장황하다고 생각합니다.
SELECT * FROM table ORDER BY column DESC LIMIT 1;
테이블에서 마지막 기록을 얻으려면 ..
String selectQuery = "SELECT * FROM " + "sqlite_sequence";
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToLast();
I think it would be better if you use the method query from SQLiteDatabase class inseted of the whole SQL string, which would be:
Cursor cursor = sqLiteDatabase.query(TABLE, allColluns, null, null, null, null, ID +" DESC", "1");
The last two parameters are ORDER BY and LIMIT.
You can see more at: http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
If you have already got the cursor, then this is how you may get the last record from cursor:
cursor.moveToPosition(cursor.getCount() - 1);
//then use cursor to read values
Here's a simple example that simply returns the last line without need to sort anything from any column:
"SELECT * FROM TableName ORDER BY rowid DESC LIMIT 1;"
Just simple, you can move with Cursor
moveToLast(); method provides to move to the last record
cursor.moveToLast();
I wanted to maintain my table while pulling in one row that gives me the last value in a particular column in the table. I essentially was looking to replace the LAST()
function in excel and this worked.
, (Select column_name FROM report WHERE rowid = (select last_insert_rowid() from report))
Suppose you are looking for last row of table dbstr.TABNAME, into an INTEGER column named "_ID" (for example BaseColumns._ID), but could be anyother column you want.
public int getLastId() {
int _id = 0;
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query(dbstr.TABNAME, new String[] {BaseColumns._ID}, null, null, null, null, null);
if (cursor.moveToLast()) {
_id = cursor.getInt(0);
}
cursor.close();
db.close();
return _id;
}
in sqlite, there is a table called sqlite_sequence, this table contains the table name and it's last id number (if the id is auto incremented).
So, to get the last row in a table just put :
Select * from TABLENAME where id=(SELECT * from sqlite_sequence where name ='TABLENAME')
참고URL : https://stackoverflow.com/questions/9902394/how-to-get-last-record-from-sqlite
'your programing' 카테고리의 다른 글
scrollHeight를 어떻게 결정합니까? (0) | 2020.10.08 |
---|---|
jquery를 사용하여 드롭 다운을 읽기 전용으로 만드는 방법은 무엇입니까? (0) | 2020.10.08 |
날짜 시간을 24 시간 형식으로 변환 (0) | 2020.10.08 |
마법이 적은 멋진 미디어 쿼리 (0) | 2020.10.08 |
Linux 블록 장치에 대한 요청 대기열을 어떻게 식별 할 수 있습니까? (0) | 2020.10.08 |