从sqlite中随机获取数据而不重复

时间:2013-11-26 06:59:20

标签: ios iphone sqlite

我正在使用sqlite数据库,一切进展顺利。我在表格中添加了4个条目,然后在textview文件中添加了xib。现在我希望我的textview能够在不重复的情况下随机显示这些条目。我的意思是每当我运行我的应用程序时,我的textview应该从之前未显示的不同行中获取数据。  请帮我解决我的问题。

~~~~~~~~~~~~~~~~~~~~~~~~~从MOTIVational Thoughts表中获取数据~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~

    if(sqlite3_open([databasePath UTF8String], &contactDB) == SQLITE_OK) {

        const char* sql = "Select * FROM THOUGHTS";

        sqlite3_stmt *compiledStatement;

    if (sqlite3_prepare_v2(contactDB, sql, -1, &compiledStatement, nil)==SQLITE_OK) {

         NSLog(@"Ready to enter while loop");

        while(sqlite3_step(compiledStatement) == SQLITE_ROW) {

            NSString *aid = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
            textView.text = aid;
        }
    }

    sqlite3_finalize(compiledStatement);

}
sqlite3_close(contactDB);
    }

在textView.text中,我只获取第一行数据,但我希望textview应该从列的任何行中获取数据。

1 个答案:

答案 0 :(得分:1)

将一个名为alreadyFetched的列添加到您的表中,然后在从表中提取随机行后,将此行的alreadyFetched设置为true。再次获取行时,仅选择alreadyFetched = false

要获取随机行,请使用我刚才描述的查询选择所有行,然后选择一个收到的行arc4random%[rowcount]