greendao 查詢之資料去重

2021-09-07 18:13:49 字數 1392 閱讀 2823

最近使用greendao的過程中,有乙個需求:將資料庫的內容根據組別展示。意思就是需要將資料庫中的所有組別取出來,然後根據組別載入資料。之前我的笨辦法是獲取所有的資料,然後對得到的資料手動去重(比較每個實體的組別值是否一致,不是就加到乙個list集合中)。 

笨辦法在數量比較小的資料庫裡面不會有什麼影響,但是為了追求完美,我查詢了資料庫,得到需要」select distinct」字段才能查詢,但是sqlite都不會的我,怎麼會查詢這個呢?這個時候離成功很近了,不過我還是偷懶了——直接去查詢人家是怎麼實現的?

private

static final string sql_distinct_ename = "

select distinct

"+empdao.properties.ename.columnname+"

from

"+empdao.tablename;

public

static listlistename(daosession session)

while

(c.movetonext());}}

finally

return

result;

}

通過這個方法直接就可以實現了,但是這個daosession物件不好找,是greendao自動生成的物件,然後在empdao裡面增加getdaosession()方法是無效的,一編譯就將手動新增的方法刪除了。我是在自己的greendaohelper方法裡面找到的,**如下:

/*

* * greendao多個資料庫的支援類

* created by administrator on 2017/4/4 0004. */

public

class

greendaohelper

/***/public

daosession initdatabase(string ppath)

public

daosession getdaosession(string pdbpath) throws filenotfoundexception

if(mdaosession == null

)

return

mdaosession;

}public

daosession getbasedaosession()

return

mdaosession;

}public

boolean filei***ists(string ppath)

}catch

(exception e)

return

true

; }

}

方法出處

Elasticsearch去重查詢

最近遇到乙個es資料查詢去重的需求,我這邊需要的是獲取去重後的結果,查詢官網資料和各位大神的經驗後,總結一下elasticsearch去重查詢功能。關係型資料庫中,比如mysql,可以通過distinct進行去重,一般分為兩種 select distinct count 1 from test se...

sql去重 查詢

有重複資料主要有一下2種情況 1.存在兩條完全相同的紀錄 這是最簡單的一種情況,用關鍵字distinct就可以去掉 例子 select distinct from table 表名 where 條件 2.存在部分字段相同的紀錄 有主鍵id即唯一鍵 如果是這種情況的話用distinct是過濾不了的,這...

sql去重查詢

背景 專案有訊息推送,根據訊息推送記錄,篩選出一共有哪幾種訊息型別,並且標題和文字是什麼 表部分結構如圖 主要是根據subject來去重所有資料,難點是,使用distinct的話,無法顯示title和content欄位 select distinct subject from messages如果使...