如何修复多值 stmt.Query() 在单值上下文中

我通过下面的代码面临上述问题

    stmt, err2 := db.Prepare( "SELECT COUNT(*) FROM  xyz WHERE product_id=? and chart_number=?")
    rows, err2 := stmt.Query( bidStatusReqVal.ProductId,bidStatusReqVal.ChartNumber).Scan(&count)


30秒到达战场
浏览 67回答 1
1回答

慕慕森

Query(...).Scan(...)无效,因为返回两个值,并且调用链接要求前一个调用仅返回一个值。呼叫返回的 ,或仅将 with 用作返回目的地。QueryScanrowsQueryRow(...).Scan(...)errrows, 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(*) ...QueryRowerr := stmt.QueryRow(bidStatusReqVal.ProductId, bidStatusReqVal.ChartNumber).Scan(&count)if err != nil {    return err}// ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go