![](/img/trans.png)
[英]go-pg, UpdateNotZero does not update nullable fields by design, how to do?
[英]how to do queryOne with go-pg properly?
我想queryOne
使用go-pg
只返回一行到 object 而不是數組。
這是我的簡單代碼:
var reportMessage *ReportMessage
_, err := db.Model((*ReportMessage)(nil)).QueryOne(&reportMessage, `
SELECT
SUM(total_order) total_order,
SUM(total_message) total_message,
SUM(hsm_message) hsm_message ,
SUM(outbound_message) outbound_message ,
SUM(inbound_message) inbound_message ,
SUM(total_order_amount) total_order_amount
FROM report_message rm WHERE seller_id =? and "date" between ? and ?;
`, sellerID, dateStart, dateEnd)
if err != nil {
return nil, err
}
return reportMessage, nil
type ReportMessage struct {
ID string `json:"id"`
SellerID string `json:"seller_id"`
TotalOrder int `json:"total_order"`
Date time.Time `json:"date"`
HsmMessage int `json:"hsm_message"`
TotalMessage int `json:"total_message"`
OutboundMessage int `json:"outbound_message"`
InboundMessage int `json:"inbound_message"`
TotalOrderAmount float32 `json:"total_order_amount"`
}
我希望它只返回reportMessage 而不是一個數組。
這是我的錯誤:
json: cannot unmarshal number into Go value of type models.ReportMessage
如何只查詢一行並將其返回給 object 而不是數組?
您需要初始化 model 的實例並將指針傳遞給該實例,而不是將指針傳遞給 model 的未初始化的 nil 指針。
reportMessage := new(ReportMessage)
_, err := db.Model((*ReportMessage)(nil)).QueryOne(reportMessage, `
SELECT
SUM(total_order) total_order,
SUM(total_message) total_message,
SUM(hsm_message) hsm_message ,
SUM(outbound_message) outbound_message ,
SUM(inbound_message) inbound_message ,
SUM(total_order_amount) total_order_amount
FROM report_message rm WHERE seller_id =? and "date" between ? and ?;
`, sellerID, dateStart, dateEnd)
if err != nil {
return nil, err
}
return reportMessage, nil
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.