sql >> Databáze >  >> RDS >> PostgreSQL

panika:sql:očekává se 1 cílový argument ve skenování, nikoli <číslo> golang, pq, sql

Dotaz vrátí jedno pole na řádek. Kód se skenuje pro tři. Možná chcete něco jako:

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

Také předejte ukazatele na hodnoty:

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

Další možností je načíst data jako jediné pole a dekódovat výsledek pomocí balíčku 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. MySQL:vyberte e-maily pouze z jedné tabulky, pokud ne z jiné tabulky?

  2. PostgreSql:Získání podivného časového razítka s časovým pásmem

  3. php password_verify nefunguje s databází

  4. Jak funguje BINARY Operator v MariaDB