Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Driver Go SQL mendapatkan nilai kolom{} antarmuka

Lihat ini https://stackoverflow.com/questions/20271123/go -lang-sql-in-parameters jawaban yang menjadi dasar jawaban saya. Dengan menggunakan itu Anda dapat melakukan sesuatu seperti ini:

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))
    }
}

Dengan menggunakan paket refleksi, Anda kemudian bisa mendapatkan Jenis untuk setiap kolom sesuai kebutuhan seperti yang ditunjukkan dengan loop di akhir.

Ini umum dan akan bekerja dengan tabel apa pun, jumlah kolom, dll.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Meningkatkan kueri menggunakan banyak gabungan dalam ke wp_postmeta, tabel kunci/nilai

  2. Periksa apakah nama pengguna sudah ada menggunakan PHP

  3. MSQL:Bagaimana cara menimpa entri hanya jika yang baru lebih tinggi? lain buat entri baru

  4. Mengapa Hibernate/JDBC/MySQL memutuskan koneksi setelah sekitar satu hari?

  5. Typo3 V6:Bagaimana cara membuat wadah elemen konten? (tanpa televisi)