sql >> データベース >  >> RDS >> SQLite

繰り返しなしでSQLiteからボタンにテキストをランダムに設定するにはどうすればよいですか?

    問題を解決するためのアプローチは他にもあります:

    1. 最初にsql-statementを(制限なしで)実行し、質問に正しく答えられたらカーソルの次のエントリに移動します
    2. すでに回答済みの質問をバッファリングする

    2番目のアプローチは次のように実行できます。

    まず、where句を含めてメソッドとSQLを変更します:

    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-clauseを生成する関数を追加します:

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


    1. postgresでの動的SQLクエリ

    2. oracleより高速なページングクエリ

    3. PHP / MySQLで2つのmysqlクエリを1つとして実行するにはどうすればよいですか?

    4. System.Data.OracleClientには、Oracleクライアントソフトウェアバージョン8.1.7が必要です。