栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

sql:扫描列数未知的行(从*中选择*)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sql:扫描列数未知的行(从*中选择*)

您可以使用Rows.Columns,例如

package mainimport (    "database/sql"    "fmt"    "github.com/lib/pq")type Vehicle struct {    Id     int    Name   string    Wheels int}// VehicleCol returns a reference for a column of a Vehiclefunc VehicleCol(colname string, vh *Vehicle) interface{} {    switch colname {    case "id":        return &vh.Id    case "name":        return &vh.Name    case "wheels":        return &vh.Wheels    default:        panic("unknown column " + colname)    }}func paniconErr(err error) {    if err != nil {        panic(err.Error())    }}func main() {    conn, err := pq.ParseURL(`postgres://docker:docker@172.17.0.2:5432/pgsqltest?schema=public`)    paniconErr(err)    var db *sql.DB    db, err = sql.Open("postgres", conn)    paniconErr(err)    var rows *sql.Rows    rows, err = db.Query("select * from vehicle")    paniconErr(err)    // get the column names from the query    var columns []string    columns, err = rows.Columns()    paniconErr(err)    colNum := len(columns)    all := []Vehicle{}    for rows.Next() {        vh := Vehicle{}        // make references for the cols with the aid of VehicleCol        cols := make([]interface{}, colNum)        for i := 0; i < colNum; i++ { cols[i] = VehicleCol(columns[i], &vh)        }        err = rows.Scan(cols...)        paniconErr(err)        all = append(all, vh)    }    fmt.Printf("%#vn", all)}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/594972.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号