Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Go SQL driver get giao diện {} giá trị cột

Xem https://stackoverflow.com/questions/20271123/go -lang-sql-trong-thông số câu trả lời mà câu trả lời của tôi dựa trên. Sử dụng điều đó, bạn có thể làm điều gì đó như sau:

var myMap = make(map[string]interface{})
rows, err := db.Query("SELECT * FROM myTable")
defer rows.Close()
if err != nil {
    log.Fatal(err)
}
colNames, err := rows.Columns()
if err != nil {
    log.Fatal(err)
}
cols := make([]interface{}, len(colNames))
colPtrs := make([]interface{}, len(colNames))
for i := 0; i < len(colNames); i++ {
    colPtrs[i] = &cols[i]
}
for rows.Next() {
    err = rows.Scan(colPtrs...)
    if err != nil {
        log.Fatal(err)
    }
    for i, col := range cols {
        myMap[colNames[i]] = col
    }
    // Do something with the map
    for key, val := range myMap {
        fmt.Println("Key:", key, "Value Type:", reflect.TypeOf(val))
    }
}

Khi sử dụng gói phản ánh, bạn có thể nhận được Loại cho mỗi cột khi cần thiết như được minh họa với vòng lặp ở cuối.

Điều này là chung và sẽ hoạt động với bất kỳ bảng nào, số lượng cột, v.v.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thời gian truy vấn thất thường của MySQL

  2. mySQL MATCH trên nhiều bảng

  3. Truy vấn tìm khóa ngoại

  4. SQL để nhận bản ghi riêng biệt cho sự kết hợp của hai cột (Không phân biệt thứ tự)

  5. MySQL:Chọn nhiều trường thành nhiều biến trong một thủ tục được lưu trữ