2

こんにちは、私はgorpを使用しており、クエリを使用しているスキーマを実際に知らなくても、任意のテーブルに対して選択クエリを使用したいと考えています

db, err := sql.Open("mysql", "root:1234@tcp(localhost:3306)/information_schema")
checkErr(err, "sql.Open failed")
dbmap := &gorp.DbMap{Db: db, Dialect: gorp.MySQLDialect{}}
var data []interface{}
_, err = dbmap.Select(&data, "select * from collations")
checkErr(err, "select query failed")
fmt.Println(data)

}

ただし、選択する最初のパラメーターとして構造体しか渡すことができないため、これはエラーになります

これはエラーを返します

クエリの選択に失敗しました gorp: 非構造体スライスへの選択には 1 列が必要で、6 を取得しました

ユーザーが動的に選択したテーブル名で選択クエリを使用できるように、いくつかの修正またはその他の代替案を提案してください

4

1 に答える 1

-1

スキーマがわからない場合は、GORP を使用しないでください...なぜですか? GORPs はマッパーであるため、データの処理方法を知るためにソースフィールドとターゲットフィールドが必要です。ターゲットを渡さないと、GORP は実際に何をすべきかわかりません。

ただし、標準の SQL パッケージを使用してこれを行うことができます。詳細については、この回答を参照してください: sql: 不明な数の列を持つ行をスキャンします (select * from ...)

于 2016-02-19T18:25:12.127 に答える