Rows.Scan
方法的参数数量与SQL查询中的列数量相同。
由于正在执行的查询是SHOW COLUMNS FROM my_table
,所以我不能省略任何不需要的列(或者我可以吗?)).
有没有什么方法可以忽略查询结果集中一些不需要的字段?
下面是我的代码:
rows, err := db.Query("SHOW COLUMNS FROM " + r.Name)
DieIf(err)
//var field, dataType, ignoreMe1, ignoreMe2, ignoreMe3 string
var field, dataType string
for rows.Next() {
//This Place
// |
// V
if err := rows.Scan(&field, &dataType); err != nil {
DieIf(err)
}
r.Attributes[field] = Attribute{
Name: field,
DataType: dataType,
Constraint: false,
}
}
错误:sql: expected 5 destination arguments in Scan, not 2
2条答案
按热度按时间im9ewurl1#
所以这里我给你一个解决方案,试试这个从查询中得到
field
和type
。vohkndzv2#
就像这个答案所暗示的那样,sqlx可能是一个不错的选择。
我个人使用db.Unsafe()来忽略不需要的字段。