我通过下面的代码面临上述问题 stmt, err2 := db.Prepare( "SELECT COUNT(*) FROM xyz WHERE product_id=? and chart_number=?")
rows, err2 := stmt.Query( bidStatusReqVal.ProductId,bidStatusReqVal.ChartNumber).Scan(&count)
1 回答
慕慕森
TA贡献1856条经验 获得超17个赞
Query(...).Scan(...)无效,因为返回两个值,并且调用链接要求前一个调用仅返回一个值。呼叫返回的 ,或仅将 with 用作返回目的地。QueryScanrowsQueryRow(...).Scan(...)err
rows, err := stmt.Query(bidStatusReqVal.ProductId, bidStatusReqVal.ChartNumber)
if err != nil {
return err
}
defer rows.Close()
for rows.Next() {
if err := rows.Scan(&count); err != nil {
return err
}
}
if err := rows.Err(); err != nil {
return err
}
// ...
在查询仅返回单个行的情况下,例如 ,或者如您的情况,使用 会更方便。SELECT ... LIMIT 1SELECT COUNT(*) ...QueryRow
err := stmt.QueryRow(bidStatusReqVal.ProductId, bidStatusReqVal.ChartNumber).Scan(&count)
if err != nil {
return err
}
// ...
- 1 回答
- 0 关注
- 66 浏览
添加回答
举报
0/150
提交
取消