【问题标题】:retrieve particular column between different columns of sqlite databse in android在android中的sqlite数据库的不同列之间检索特定列
【发布时间】:2020-03-05 16:31:57
【问题描述】:

这是代码,通过它我可以从数据库中检索所有列数据。但问题是现在我只想检索一列,这是我的要求。link1stlink 2ndlink3rd

word_list = new ArrayList<>();
     SQLiteDatabase sd = mydb.getWritableDatabase();
    Cursor cursor = sd.query("stickerstable",null, null, null, null, null, null);
    if (cursor.moveToFirst()){
        do{
            word_list.add(new data_items(

                    cursor.getInt(cursor.getColumnIndex(ID)),
                    cursor.getString(cursor.getColumnIndex(STICKER_AUTHOR)),
                    cursor.getString(cursor.getColumnIndex(STICKER_NAME)
                     )));

        }while (cursor.moveToNext());
        cursor.close();
        sd.close();
    }

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    您可以使用 rawQuery 代替 query

    Cursor cursor = sd.rawQuery("SELECT YOUR_COLUMN FROM stickerstable",null);
    

    YOUR_COLUMN 替换为您要检索的列的名称,您甚至可以像这样使用您的常量

    Cursor cursor = sd.rawQuery("SELECT " + ID + " FROM stickerstable",null);
    

    或者更好的使用 String.format 的方式

    Cursor cursor = sd.rawQuery(String.format("SELECT %s FROM stickerstable", ID),null);
    

    更新

    您可以使用 query 并在第二个参数中指定列

    Cursor cursor = sd.query("stickerstable",new String[]{ID}, null, null, null, null, null);
    

    当你传递 null 意味着获取所有列

    【讨论】:

    • 感谢您的回复。在主要活动中检索两列,名称贴纸作者和贴纸名称,工作正常。但是如果在第二个活动中我在 sqlite 中插入图像并且该图像也显示在 mainActivity 列表中。我能做什么。
    • 实际上我只从数据库中检索了两列,但是如果在第二个活动中将图像插入数据库中,它也会显示在 mainActivity 列表中。
    • 我尝试了你的代码,它可以检索所有数据和图像。但它不能解决我的问题
    • 对不起,我没听懂您的意思,您能否更新您的问题并提供更多详细信息并发布更多代码
    • 你的代码很容易理解,这就是为什么我赞成你的回答..谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多