SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Làm thế nào để đặt ngẫu nhiên văn bản thành các nút từ SQLite mà không lặp lại?

có nhiều cách tiếp cận hơn để giải quyết vấn đề của bạn:

  1. thực hiện câu lệnh sql (không giới hạn) ở đầu và chuyển đến mục nhập tiếp theo của con trỏ khi câu lệnh được trả lời đúng
  2. điền vào các câu hỏi đã được trả lời ở đâu

cách tiếp cận thứ hai có thể được thực hiện như sau:

trước tiên, hãy thay đổi phương thức và sql của bạn, bao gồm mệnh đề where:

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

thứ hai, đệm các câu hỏi đã được trả lời trong lớp trò chơi của bạn:

thêm Danh sách liên kết vào cấp trò chơi của bạn

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

thêm các câu hỏi đã được trả lời vào LinkedList:

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

thêm một hàm tạo mệnh đề 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. Cách định dạng kết quả SQLite dưới dạng bảng

  2. Cách xóa các mục khỏi cơ sở dữ liệu sqlite với lớp SQLiteOpenHelper

  3. Ứng dụng ngừng hoạt động do cơ sở dữ liệu

  4. Cách Substr () hoạt động trong SQLite

  5. Cách triển khai SQLCipher khi sử dụng SQLiteOpenHelper