我正在研究一些旨在将 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)
}
}
}
临摹微笑
绝地无双
相关分类