我正在使用 sqlite
数据库,一切进展顺利。我在表中添加了 4 个条目,然后在我的 xib
文件中添加了 textview
。现在我希望我的 textview
应该随机地向我显示这些条目而不重复。我的意思是,每当我运行我的应用程序时,我的 textview
应该从之前未显示的不同行中获取数据。
请帮我解决我的问题。
~~~~~~~~~~~~~~~~~~~~~~~~~ 从动机想法表中获取数据~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
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应该来自该列的任何行的图片数据。
最佳答案
将名为 alreadyFetched
的列添加到您的表中,然后在从表中随机提取一行后,将此行的 alreadyFetched
设置为 true
。再次获取行时,仅选择具有 alreadyFetched = false
要获得随机行,请使用我刚才描述的查询选择所有行,然后使用 arc4random%[rowcount]
选择接收到的行之一。
关于ios - 从sqlite随机获取数据而不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20210465/