我有一个像下面这样的代码。
var sql string
if pnt.Type == "newType" {
sql = `select code, count(*) count from (
select code
from code_table
where start >= ? and end <= ?
union
select code
from code_table
where start >= ? and end <= ?
) a group by code`
rows, err := pnt.readConn("testdb").Query(sql, start, end, start, end)
} else {
sql = `select code, count(*) count from code_table where start >= ? and end <= ?` group by code
rows, err := pnt.readConn("testdb").Query(sql, start, end)
}
if err == nil {
defer rows.Close()
for rows.Next() {
var code, count int
rows.Scan(&code, &count)
}
} else {
log.Println(err)
}
这会给我一个类似这样的错误“未为行声明变量,错误”...
我尝试声明“var err error”,并在 if else 语句中,我使用 = 而不是 := 这样的东西
var err error
rows, err = pnt.switchConn("base", "read").Query(sql, start, end)
但是,我仍然无法声明行,因为我会遇到不同类型的错误。我尝试将其声明为字符串,但没有成功。
这是我第一次使用 golang,if else 的事情让我很困难,为什么我不能在 if else 语句中使用 := 。正如您所看到的,我不能在 if else 语句之外使用 rows, err := ,因为两者都有不同数量的参数。
喵喔喔
开心每一天1111
相关分类