为了账号安全,请及时绑定邮箱和手机立即绑定

查询的命令行参数

查询的命令行参数

Go
蝴蝶刀刀 2022-04-26 14:30:35
我正在研究一些旨在将 mysql 数据转储到 .csv 文件的代码。我想传入一个命令行参数,允许用户输入为查询运行的 ID,例如。go run main.go 2 将运行查询SELECT * FROM table where id = 2;我知道 Go 有 os 包,然后我可以在其中传递以下内容:    args := os.Args    if len(args) < 2 {        fmt.Println("Supply ID")        os.Exit(1)    }    testID := os.Args[1]    fmt.Println(testID)}这是我目前正在处理的代码。如何为查询设置命令行参数?    rows, _ := db.Query("SELECT * FROM table where id = ?;")    err := sqltocsv.WriteFile("table.csv",rows)    if err != nil {        panic(err)    }    columns, _ := rows.Columns()    count := len(columns)    values := make([]interface{}, count)    valuePtrs := make([]interface{}, count)    for rows.Next() {        for i := range columns {            valuePtrs[i] = &values[i]        }        rows.Scan(valuePtrs...)        for i, col := range columns {            val := values[i]            b, ok := val.([]byte)            var v interface{}            if ok {                v = string(b)            } else {                v = val            }            fmt.Println(col, v)        }    }}
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

只需将您的参数添加到Query

rows, _ := db.Query("SELECT * FROM table where id = ?;", os.Args[1])


查看完整回答
反对 回复 2022-04-26
?
绝地无双

TA贡献1946条经验 获得超4个赞

testID 需要和 interface{} 类型并添加到 Query

var testID interface{}
testID  = os.Args[1]

并添加到查询

rows, _ := db.Query("SELECT * FROM table where id = ?;", testID)

编辑:为什么是接口{}?

查询函数接受 interface{} 类型的参数。更多信息


查看完整回答
反对 回复 2022-04-26

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号