PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

panika:sql:oczekiwano 1 docelowy argument w skanowaniu, a nie golang, pq, sql

Zapytanie zwraca jedno pole na wiersz. Kod jest skanowany za trzy. Być może chcesz coś takiego:

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

Przekaż również wskaźniki do wartości:

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

Inną opcją jest pobranie danych jako pojedynczego pola i zdekodowanie wyniku za pomocą pakietu kodowania/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. psql zwraca 'anonimowy' w tablicy wyników

  2. Replikacja Londiste z PostgreSQL 9.0

  3. Wygląda na to, że DictCursor nie działa pod psycopg2

  4. ActiveRecord zagnieżdżony SELECT

  5. Błąd podczas ustawiania n_distinct przy użyciu zmiennej plpgsql