SQLiteデータベースから、KEY_ALCOHOL列に「Liquor」が含まれるすべてのエントリを取得しました。選択したグループからランダムなエントリを選択するにはどうすればよいですか?
これが私がグループを取得する方法です:
public Cursor getAlcohol(String alcohol) throws SQLException
{
Cursor mCursor =
myDataBase.query(true, DB_TABLE, new String[] {
KEY_ROWID,
KEY_ALCOHOL,
KEY_TYPE,
KEY_BRAND,
KEY_PRICE
},
KEY_ALCOHOL + "=?",
new String[] { alcohol },
null,
null,
null,
null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
これは約60の異なるエントリを返し、ランダムに1つだけを選択する必要があります。
編集
これは、データベースヘルパー.javaでの2回目の試行です。
public Cursor getTest(String test) throws SQLException
{
Cursor mCursor =
myDataBase.query(true, DB_TABLE, new String[] {
KEY_ROWID,
KEY_ALCOHOL,
KEY_TYPE,
KEY_BRAND,
KEY_PRICE
},
KEY_ALCOHOL + "=?",
new String[] { test },
null,
null,
"RANDOM()",
"LIMIT 1");
return mCursor;
}
これは私がメインアクティビティでそれを呼んでいる方法です:
myDbHelper.openDataBase();
Cursor c = myDbHelper.getTest("Liquor");
if (c.moveToFirst())
{
do {
DisplayTitle(c);
} while (c.moveToNext());
}
myDbHelper.close();
}
public void DisplayTitle(Cursor c)
{
Toast.makeText(this,
"id: " + c.getString(0) + "\n" +
"ALCOHOL: " + c.getString(1) + "\n" +
"TYPE: " + c.getString(2) + "\n" +
"BRAND: " + c.getString(3) + "\n" +
"PRICE: " + c.getString(4),
Toast.LENGTH_LONG).show();
}