Mysql
 sql >> база данни >  >> RDS >> Mysql

Отидете на драйвер на SQL, вземете стойности на колона за интерфейс{}

Вижте това https://stackoverflow.com/questions/20271123/go -lang-sql-in-parameters отговор, на който се основава моят отговор. Използвайки това, можете да направите нещо подобно:

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

Като използвате пакета за отразяване, можете да получите типа за всяка колона според нуждите, както е показано с цикъла в края.

Това е общо и ще работи с всяка таблица, брой колони и т.н.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql база данни автоматично разделяне

  2. Как да изберете най-новия набор от датирани записи от таблица на mysql

  3. Намерете колона, която съдържа дадена стойност в MySQL

  4. Грешка:Таблица 'mysql.proc' не съществува при добавяне на MySQL-Data Source към проекта на Visual Studio

  5. Пребройте колко записа има в база данни на интервали от 5 минути