У меня есть код, подобный приведенному ниже.
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», и в операторе if else я использую = вместо: = что-то вроде этого
var err error
rows, err = pnt.switchConn("base", "read").Query(sql, start, end)
Однако я все еще не могу объявить строки, потому что у меня будет другой видошибки для этого.Я попытался объявить его как строку, но не повезло.
Я впервые использую golang, и если что-то другое доставляет мне неприятности, почему я не могу просто использовать: = внутри оператора if else.Как видите, я не могу использовать строки, err: = вне оператора if else, потому что у обоих разное количество параметров.