首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数据库中反向插入数据

在数据库中反向插入数据
EN

Stack Overflow用户
提问于 2012-04-13 20:10:56
回答 3查看 495关注 0票数 0

我有一个注册表,它连接到database.When,我插入记录,最近的记录放在表中的第一位。我希望最近的记录出现在最后输入的记录下面。你能帮帮我吗?

代码语言:javascript
复制
long flag = 0;
int id = 1;
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.query("tbl_countries", new String[]{"count(*) phone"}, null, null, null, null, null);
while(cursor.moveToNext())
{
    int idFromDatabase = cursor.getInt(cursor.getColumnIndex("phone"));
    if(idFromDatabase != 0)
    {
        id = 1 + idFromDatabase;
    }
}
ContentValues values = new ContentValues();
//values.put("ID", id);
values.put("phone", Long.parseLong((phone.getText().toString())));
values.put("fname", fnametxt.getText().toString().trim());
values.put("lname", lnametxt.getText().toString().trim());
if(male.isChecked())
{
    values.put("gender","male");
}
else
values.put("gender", "Female");
values.put("email", emailtxt.getText().toString());
values.put("mainpin",pin1.getText().toString()+pin2.getText().toString()+pin3.getText().toString()+pin4.getText().toString());                  
flag = db.insert("tbl_countries", null, values);
if(flag != -1)
{
    Toast toast = Toast.makeText(getApplicationContext(), "You have successful inserted this record into database! "+flag, Toast.LENGTH_LONG); 
    toast.show();
    db.close();
    return;
}
else
{
    Toast toast = Toast.makeText(getApplicationContext(), "An error occured when insert this record into database!", Toast.LENGTH_LONG); 
    toast.show();
    db.close();
    return;
}

如果我的代码中有任何错误,请给我建议。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-13 20:29:46

您可以做的是在您的注册表中指定id (自动递增)列,当您在此时查询您的数据时,通过id列的升序获取它。

票数 0
EN

Stack Overflow用户

发布于 2012-04-13 20:13:49

您的问题不在于记录的插入,而在于检索。

严格地说,数据库中的数据没有顺序。它是未排序的,或者根据您指定的任何条件进行排序。

在本例中,您可能希望对日期字段或ID进行排序,以获得所需的顺序。

票数 1
EN

Stack Overflow用户

发布于 2012-04-13 20:22:05

SQL标准不保证先前插入的记录在检索时的任何特定顺序。这意味着,即使您可能以可预测的顺序查看这些记录,这种顺序也可能在任何时候发生变化,而不会出现任何警告。有问题的DBMS可能决定在某个时候对其存储进行碎片整理,并在进程中对记录进行重新排序-这是完全合法的行为,您必须为此做好准备。获得可靠、一致的记录顺序的唯一方法是使用(令人惊讶!)检索查询中的ORDER BY子句。表中的数据没有定义的排序,只有在检索时才会排序。

如果希望按插入顺序显示数据,请考虑使用自动增量列并按该列排序(升序排列最旧的列,或降序排列最新的列)。

SQL;DR:插入顺序在中没有意义;如果您想要数据排序,请使用 SELECT ... ORDER BY**.**

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10140552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档