我試圖在沒有 where 條件的情況下查詢 postgres 表中的所有結果,并通過傳遞 args ...interface {} 借助 sqlx db 查詢將其映射到結構數組。但是下面粘貼的代碼永遠不會工作,而不是一一迭代和掃描結果,是否可以讓以下代碼工作?非常感謝您的投入。謝謝type CustomData struct { ID string `db:"id" json:",omitempty"` Name string `db:"name" json:",omitempty"` Description string `db:"description" json:",omitempty"` SourceID string `db:"sourceid" json:",omitempty"` StatusID string `db:"statusid" json:",omitempty"` StatusReason string `db:"statusreason" json:",omitempty"` CreateTime string `db:"createtime" json:",omitempty"` UpdateTime string `db:"updatetime" json:",omitempty"`}var myData []CustomData*sqlx.DB.Query("SELECT id as ID, name as Name, description as Description, sourceid as SourceID, statusid as StatusID, statusreason as StatusReason, createtime as CreateTime, updatetime as UpdateTime FROM myschema.my_table", &myData)// tried with following statement but din't work either// *sqlx.DB.Query("SELECT * FROM myschema.my_table", &myData) for _, data := range myData { fmt.Println("--", data) }預期成績:--- 自定義數據{1,x,x,x,x} --- 自定義數據{2,x,x,x,x}實際情況:沒什么..
2 回答

一只名叫tom的貓
TA貢獻1906條經驗 獲得超3個贊
您不需要重命名查詢中的字段,因為您正在結構標記中定義實際的數據庫字段。
如果要直接掃描到 CustomData 切片并且使用 SQLX,則應使用 SQLX 特定的 Select 方法,而不是通用 SQL 查詢。
????pp?:=?[]Place{} ????err?=?db.Select(&pp,?"SELECT?*?FROM?place")
所以在你的情況下:
????myData?:=?[]CustomData ????err?=?db.Select(&myData,?"SELECT?*?FROM?myschema.my_table")

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
您可以使用以下內容:
for rows.Next() {
? ? s := CustomData{}
? ? if err := rows.Scan(&s); err != nil {
? ? ? ? return err
? ? }
? ? fmt.Println(s)
}
如果你喜歡代碼優(yōu)先方法,你總是可以使用 ORM 庫作為gorm?;如果你喜歡數據庫優(yōu)先方法,你可以使用sqlboiler
- 2 回答
- 0 關注
- 242 瀏覽
添加回答
舉報
0/150
提交
取消