为了账号安全,请及时绑定邮箱和手机立即绑定

无法在高浪中返回值

无法在高浪中返回值

Go
互换的青春 2022-09-26 19:46:33
我是golang的新手,我不明白为什么我不能返回值。我认为这是一个小错误。我只想返回我在数据库中选择的字符串。func myFunction() string {    rows, err := db.Query("SELECT my_string ORDER BY agents_count ASC LIMIT 1;")    if err != nil {        logger.Fatal(err)    }    defer rows.Close()    for rows.Next() {        var my_string string        if err := rows.Scan(&my_string); err != nil {            logger.Fatal(err)        }                logger.Info("Result : ", my_string)    }    if err := rows.Err(); err != nil {        logger.Fatal(err)    }    return my_string}有什么想法吗?我的错误是什么?
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

在选择单个行时,应使用查询行,而不是使用查询方法或较新的查询行文本方法。LIMIT 1

func myFunction() string {

    var my_string string

    

    row := db.QueryRow("SELECT my_string ORDER BY agents_count ASC LIMIT 1;")

    if err := row.Scan(&my_string); err != nil {

        logger.Fatal(err)

    }

    

    return my_string

}




查看完整回答
反对 回复 2022-09-26
?
潇湘沐

TA贡献1816条经验 获得超6个赞

只需将my_string移动到外循环


func myFunction() string {


    rows, err := db.Query("SELECT my_string ORDER BY agents_count ASC LIMIT 1;")

    if err != nil {

        logger.Fatal(err)

    }


    defer rows.Close()


    var my_string string


    for rows.Next() {


        if err := rows.Scan(&my_string); err != nil {

            logger.Fatal(err)

        }

        

        logger.Info("Result : ", my_string)

    }

    if err := rows.Err(); err != nil {

        logger.Fatal(err)

    }


    return my_string

}


查看完整回答
反对 回复 2022-09-26
  • 2 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号