最近使用greendao的過程中,有乙個需求:將資料庫的內容根據組別展示。意思就是需要將資料庫中的所有組別取出來,然後根據組別載入資料。之前我的笨辦法是獲取所有的資料,然後對得到的資料手動去重(比較每個實體的組別值是否一致,不是就加到乙個list集合中)。
笨辦法在數量比較小的資料庫裡面不會有什麼影響,但是為了追求完美,我查詢了資料庫,得到需要」select distinct」字段才能查詢,但是sqlite都不會的我,怎麼會查詢這個呢?這個時候離成功很近了,不過我還是偷懶了——直接去查詢人家是怎麼實現的?
privatestatic 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如果使...