sql >> Database teknologi >  >> RDS >> PostgreSQL

panic:sql:forventet 1 destinationsargumenter i Scan, ikke golang, pq, sql

Forespørgslen returnerer et felt pr. række. Koden scanner efter tre. Måske vil du have noget som:

err := db.QueryRow("SELECT data->>'id', data->>'type', data->>'title' FROM message WHERE data->>'id'=$1", id).Scan(m.Id, m.Type, m.Title)

Send også pointere til værdierne:

err := db.QueryRow("SELECT data->>'id', data->>'type', data->>'title' FROM message WHERE data->>'id'=$1", id).Scan(&m.Id, &m.Type, &m.Title)

En anden mulighed er at hente dataene som et enkelt felt og afkode resultatet med encoding/json-pakken.

var p []byte
err := db.QueryRow("SELECT data FROM message WHERE data->>'id'=$1", id).Scan(&p)
if err != nil {
    // handle error
}
var m Message
err := json.Unmarshal(p, &m)
if err != nil {
    // handle error
}



  1. django karaktersæt med MySQL weirdness

  2. chatserver:hvad er den bedste (optimerede) måde at gemme en samtalelog på

  3. JPA-kort MySQL json-type, fik forvansket streng

  4. Kopier brugerrettigheder mellem databaser på samme server