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

Operator findes ikke:heltal =? når du bruger Postgres

PostgreSQL arbejder med nummererede pladsholdere ($1 , $2 , ...) indfødte snarere end de sædvanlige positionsspørgsmålstegn. Dokumentationen til Go-grænsefladen bruger også nummererede pladsholdere i sine eksempler:

rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)

Det ser ud til, at Go-grænsefladen ikke oversætter spørgsmålstegnet til nummererede pladsholdere, som mange grænseflader gør, så spørgsmålstegnet når hele vejen til databasen og forvirrer alt.

Du bør kunne skifte til nummererede pladsholdere i stedet for spørgsmålstegn:

 row := db.QueryRow(
    "SELECT name FROM users WHERE id = $1", id)



  1. MySQL Bestil efter et nummer, null sidst

  2. Sådan vælger du alt før/efter en bestemt karakter i MySQL – SUBSTRING_INDEX()

  3. Oprettelse af en PostgreSQL-sekvens til et felt (som ikke er id'et for posten)

  4. Sådan bruges SQL Server HierarchyID gennem nemme eksempler