亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 gocql 獲取查詢返回的行數

如何使用 gocql 獲取查詢返回的行數

Go
郎朗坤 2022-01-17 18:07:49
我正在使用此處記錄的 gocql 庫:https ://godoc.org/github.com/relops/cqlc/cqlc#Fetchable并嘗試在 golang 中編寫一個 API 調用,該調用將詢問我的所有元素滿足特定字段并返回返回元素總數的數據庫。我知道當我在 Cassandra 界面中時,我可以使用SELECT COUNT(*) from table1 WHERE ...;table1 是表名的調用。我一直在閱讀文檔,我能找到的只是限制返回條目數量的限制函數。例如,假設我在 Cassandra 中有一個在不同日期發生的事件的數據庫表。我只想返回星期二發生的事件的數量,我想使用 gocql 來做到這一點。目前我做類似的事情:cx := cqlc.NewContext()iter, err := cx.Select().            From(db.EVENTLOG).            Where(db.EVENTLOG.DAY.Eq(day).            Limit(10000).                   Fetch(cass)data, err = db.BindEventlog(iter)BindEventLog 函數返回在“一天”發生的事件的數組,但同樣,我只想要事件的數量,而不是事件本身。有沒有辦法在不遍歷這個數組的情況下得到這個,因為無論如何我都會扔掉這個數組,所以讓數據庫給我整個數據數組真的很慢。我是這方面的初學者,所以如果您需要更多信息,請詢問,我試圖盡可能具體。謝謝。
查看完整描述

3 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

我能找到的最能幫助你的是Iter.NumRows

如果他們分頁不會給你你正在尋找的行。如果他們這樣做,這是在他們的 Github 上請求的合理功能。


查看完整回答
反對 回復 2022-01-17
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

你可以這樣做


var count string

iter := session.Query(`SELECT count(*) FROM tablename`).Iter()

for iter.Scan(&count) {

    print(count)

}

您將獲得計數變量中的計數。


查看完整回答
反對 回復 2022-01-17
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

我會選擇 :


var count int

tc.Session.Query(`SELECT COUNT(*) FROM ks.tbl WHERE something = ? ALLOW FILTERING`, "something_else").Iter().Scan(&count)

print(count)

因為計數將由數據庫本身執行,而不是由應用程序執行。靈魂的答案也可以,但我更喜歡將計數保存為整數并直接掃描,但不使用額外的循環


查看完整回答
反對 回復 2022-01-17
  • 3 回答
  • 0 關注
  • 303 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號