2013-10-03 22 views
5

Tôi muốn nhận các giá trị khác biệt từ Cơ sở dữ liệu. Hiện tại tôi đang sử dụng ORMlite. Tôi đã thử đoạn mã sau. Nhưng tôi vẫn nhận được các giá trị lặp lại, khi tôi đang truy vấn. Có ai có thể chỉ ra nơi tôi đã đi sai? Tôi đang đăng mã mẫu bên dướiCách chọn các giá trị khác biệt từ ORMlite?

smsDao = databaseHelper.getSmsDao(); 
    QueryBuilder<SMSObject, Object> queryBuilder = smsDao.queryBuilder(); 
    queryBuilder.distinct().selectColumns("timestamp"); 

    try { 
     preparedQuery = queryBuilder.prepare(); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    try { 
     smsObject = smsDao.query(preparedQuery); 
    } catch (SQLException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

Bất kỳ trợ giúp nào đều được đánh giá cao.

+0

Có cùng một vấn đề chính xác - bạn có nhận được giải pháp không? – rOrlig

Trả lời

1
dataList = Utils.getDBHelper(ItemList.this).getItemDao().queryBuilder().where().in("nameid", lis).query();  

Đây là mã tôi đã sử dụng trước đó trong ứng dụng của mình. Nó đã lấy các giá trị trùng lặp từ cơ sở dữ liệu. Sau đó, tôi cập nhật nó với phương thức khác biệt() và mọi thứ bắt đầu hoạt động tốt.

dataList = Utils.getDBHelper(ItemList.this).getItemDao().queryBuilder().distinct().where().in("nameid", lis).query(); 

Lưu ý: Đây là danh sách có thể lặp lại trong đó các thông số tìm kiếm của tôi được thêm vào. Nếu bạn không có, bạn có thể sử dụng 'eq()' thay vì 'in()'.

Các vấn đề liên quan