sql >> Database >  >> RDS >> PostgreSQL

panic:sql:verwachte 1 bestemmingsargumenten in Scan, niet golang, pq, sql

De query retourneert één veld per rij. De code scant naar drie. Misschien wil je iets als:

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

Geef ook verwijzingen door naar de waarden:

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

Een andere optie is om de gegevens als een enkel veld op te halen en het resultaat te decoderen met het encoding/json-pakket.

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. PostgreSQL-functie om door veel rijen met status te bladeren/te handelen

  2. Controleren of mysql_query iets heeft geretourneerd of niet

  3. Kan ik de waarde van een automatisch verhoogd veld in de database automatisch aanpassen?

  4. MySQL-syntaxisfout juiste syntaxis om te gebruiken in de buurt van 'desc'