Вы можете сделать это следующим образом:
cols, err := rows.Columns() // Remember to check err afterwards
vals := make([]interface{}, len(cols))
for i, _ := range cols {
vals[i] = new(string)
}
for rows.Next() {
err = rows.Scan(vals...)
}
на inte rnet говорят, что вы можете использовать:
vals[i] = new(sql.RawBytes)
вместо
vals[i] = new(string)
но я думаю (строка) в порядке, idk