sql >> Databasteknik >  >> RDS >> SQLite

Hur man slumpmässigt ställer in text till knappar från SQLite utan upprepning?

det finns fler metoder för att lösa ditt problem:

  1. kör sql-satsen (utan begränsning) i början och flytta till nästa post på markören när en fråga är korrekt besvarad
  2. buffra frågorna som redan har besvarats

det andra tillvägagångssättet skulle kunna göras på följande sätt:

först, ändra din metod och SQL, inklusive en where-klausul:

public Cursor getTestData(String whereClause)
 {;
     try
     {
         String sql ="SELECT * FROM tblPitanja WHERE 1 = 1 " + whereClause + " ORDER BY RANDOM() LIMIT 1";
         [...]

för det andra, buffra de redan besvarade frågorna i din spelklass:

lägg till en länkad lista till din spelklass

LinkedList<Long> mAnsweredQuestions = new LinkedList<Long>();

lägg till redan besvarade frågor till den länkade listan:

Cursor c = mDbHelper.getTestData(generateWhereClause());
mAnsweredQuestions.add(c.getLong(0));
List<Answer> labels = new ArrayList<Answer>();
[...]

lägg till en funktion som genererar where-satsen:

private String generateWhereClause(){
    StringBuilder result = new StringBuilder();
    for (Long l : mAnsweredQuestions){
         result.append(" AND " + YOURID + " <> " + l);
    }
    return result.toString();
}


  1. Förstå Oracle-aliasing - varför känns inte ett alias igen i en fråga om det inte är insvept i en andra fråga?

  2. Oracle Concurrent Manager

  3. Hur väljer man datum från kolumnen datetime?

  4. QUARTER() Exempel – MySQL