在我的golang應用程序中,我需要對MySQL執行SQL查詢以獲取單行并將結果放入map [string] string中,這些鍵是列名。但是我不知道列將是什么。查詢就像SELECT * FROM mytable我使用“ database / sql”。我發現只有掃描功能db.QueryRow("SELECT * FROM mytable").Scan(&var1, &var2,...)但這不適用于我的情況。我不知道會有多少個變量。而且我還需要列名。是否可以使用database / sql?更新。我找到了解決部分問題的方法。如何從結果集中獲取列名。rows, err := db.Query(sqlcommand)cols, err := rows.Columns()因此,我可以用來制作地圖的鑰匙。但是我仍然不知道如何獲得價值。因為,值可以具有不同的類型。data = make(map[string]string)if rows.Next() { columns := make([]interface{}, len(cols)) columnPointers := make([]interface{}, len(cols)) for i, _ := range columns { columnPointers[i] = &columns[i] } err = rows.Scan(columnPointers...) for i, colName := range cols { // value is in columns[i] of interface type. // How to extract it from here? // .... data[colName] = val }}PS此問題不是“在mysql中獲取表列名稱?”的重復項。我想獲取返回的數據集的列,而不僅僅是一個表。
- 1 回答
- 0 關注
- 282 瀏覽
添加回答
舉報
0/150
提交
取消
