SQLite
 sql >> база данни >  >> RDS >> SQLite

Как да зададете произволно текст на бутони от SQLite без повторение?

има още подходи за решаване на проблема ви:

  1. изпълнете sql-изявлението (без ограничение) в началото и преминете към следващия запис на курсора, когато на въпрос е отговорено правилно.
  2. буферирайте въпросите, на които вече сте получили отговор

вторият подход може да бъде направен по следния начин:

първо променете своя метод и sql, включително клауза where:

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

второ, буферирайте вече отговорените въпроси във вашия клас игра:

добавете LinkedList към вашия игров клас

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

добавете вече отговорени въпроси към LinkedList:

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

добавете функция, която генерира клаузата where:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android:отваряне и затваряне на база данни SQLite

  2. Показване на SQLite данни в RecyclerView

  3. Как работи функцията JulianDay() в SQLite

  4. Върнете списък с бази данни в SQLite

  5. Настройте вашите Avg() резултати в SQLite с ключовата дума DISTINCT