當我使用掃描時,我必須事先將所有變數寫入掃描。我需要一個解決方案,我可以使用 sprintf 之類的東西來使用資料
有沒有一種方法可以在不定義變數的情況下訪問資料?
func (dbs *item) ReadQuery() {
var (
unit_name, unit_position_name string
)
rows, err := db.Query(dbs.query)
for rows.Next() {
rows.Scan(&unit_name, &unit_position_name)
if err != nil {
log.Fatal(err)
}
}
}
例如;
row["unit_name"]
或者
unit_name,unit_position string
val:= fmt.Sprintf("%s , %s",unit_name,unit_position_name)
row[val]
uj5u.com熱心網友回復:
以下是如何在不顯式宣告行中值的變數的情況下掃描行的方法。
對值進行切片。用這些值的地址制作一個切片。掃描到地址。
func example(db *sql.DB, query string) {
rows, err := db.Query(query)
if err != nil {
log.Fatal(err)
}
cols, err := rows.Columns()
if err != nil {
log.Fatal(err)
}
addrs := make([]any, len(cols))
for rows.Next() {
values := make([]any, len(cols))
for i := range addrs {
addrs[i] = &values[i]
}
rows.Scan(addrs...)
if err != nil {
log.Fatal(err)
}
// The variable values contains the row values.
// Here's an example of how to use the values.
// Replace the for loop with your code to
// process the row.
for i := range cols {
fmt.Printf("%s: %v\n", cols[i], values[i])
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/512023.html
標籤:去
上一篇:使用swig包裝的c 庫和go
下一篇:Go:比較"google.golang.org/genproto/googleapis/api/serviceusage/v1".State和字串
