无法在高浪中返回值

我是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

}

有什么想法吗?我的错误是什么?


互换的青春
浏览 133回答 2
2回答

梵蒂冈之花

在选择单个行时,应使用查询行,而不是使用查询行方法或较新的查询行文本方法。LIMIT 1func 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}

潇湘沐

只需将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}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go