私のデータベースにはテーブル名 Answers があり、_id、b1、b2、b3、b4 の 5 つの列があります。私がやろうとしているのは、列 b1、b2、b3、b4 をカーソル内でランダムに取得することだけです。次のコードを使用して、カーソルで順番に取得するには:
public Cursor getAllAnswers(int n)
{
String myPath = DB_PATH + DB_NAME;
myData = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
Cursor curs;
curs=myData.rawQuery("SELECT b1, b2, b3, b4 FROM Answers WHERE _id='"+n+"';", null);
curs.moveToFirst();
myData.close();
return curs;
};
を使用してランダムに取得しようとしました
curs=myData.rawQuery("SELECT b1, b2, b3, b4 FROM Answers WHERE _id='"+n+"' ORDER BY RANDOM() LIMIT 1;", null);
しかし、機能していません。事前に助けてくれてありがとう
Geobitsによって示されるランダムな列を達成する正しい方法を示すために編集されました(必要な場合):
public Cursor getAllAnswers(int n)
{
String myPath = DB_PATH + DB_NAME;
myData = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
String query = "SELECT ";
boolean[] chosen = new boolean[]{false, false, false, false};
Random rand = new Random();
for(int i=0;i<4;i++)
{
if(i > 0)
query += ", ";
int c = rand.nextInt(4);
while(chosen[c])
c = rand.nextInt(4);
chosen[c] = true;
query += "b" + Integer.toString(c+1);
}
query += " FROM Answers WHERE _id='"+n+"';";
Cursor curs;
curs=myData.rawQuery(query, null);
curs.moveToFirst();
myData.close();
return curs;
};