我正在使用go-sql-driver连接到 MySQL 数据库。在我的一张表中,我使用一个名为 queue_length 的字段作为 BIGINT。该字段默认为 NULL。当我尝试在 Golang 中使用 go-sql-driver 查询表中的所有字段时,queue_length 之后的字段没有出现在包括 queue_length 在内的结果集中。
在我的用例中,
表字段 [unique_id, qid, title, text, queue_length, user_id, date_created, last_updated]
当我执行以下代码时,我获得了 queue_length 之前字段的值,但 [queue_length, user_id, date_created, last_updated] 字段没有出现在结果集中。
但是,如果我不选择 queue_length,则所有字段都将出现在结果集中。我正在扫描类型为 int64 的代码中 queueLength 变量中的 queue_length。来自表的值为 NULL。我也试过类型转换。没用。
这是 go-sql-driver 中的错误还是我做错了什么?有人可以帮我解决这个问题吗?
func GetQueues(uniqueId string) ([]*objects.Queue, error) {
db, err := GetDBConnection()
defer db.Close()
rows, err := db.Query("SELECT qid, title, text, queue_length, user_id, date_created, last_updated FROM queue WHERE unique_id = ?", uniqueId)
if err != nil {
panic(err.Error())
}
defer rows.Close()
var qId string
var title string
var text string
var userId string
var dateCreated string
var lastUpdated string
var queueLength int64
var queue *objects.Queue
var queues []*objects.Queue
for rows.Next() {
err = rows.Scan(&qId, &title, &text, &queueLength, &userId, &dateCreated, &lastUpdated)
queue = &objects.Queue{ QId: qId, Title: title, Text: text, UniqueId: uniqueId, UserId: userId, DateCreated: dateCreated, LastUpdated: lastUpdated, QueueLength: queueLength }
queues = append(queues, queue)
}
err = rows.Err()
if err != nil {
panic(err.Error())
return nil, err
}
return queues, err
}
杨魅力
萧十郎
相关分类