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

паника:sql:очаквани 1 аргументи за местоназначение в сканиране, не <номер> golang, pq, sql

Заявката връща едно поле на ред. Кодът се сканира за три. Може би искате нещо като:

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

Освен това предайте указатели към стойностите:

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

Друг вариант е да извлечете данните като едно поле и да декодирате резултата с пакета encoding/json.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Подредете ли последните N реда в базата данни?

  2. Настройване на Django с поддръжка на GeoDjango в AWS Beanstalk или EC2 инстанция

  3. Как да деинсталирам postgresql на моя Mac (работещ със Snow Leopard)

  4. 42809 Грешка при изпълнение на съхранена процедура на PostgreSQL от Asp.Net C# приложение

  5. SQL Server 2012:Добавяне на свързан сървър към PostgreSQL