Behebung des JSONB-zu-Float-Konvertierungsproblems von PostgreSQL
Beim Versuch, arithmetische Operationen mit dem JSONB-Typ von PostgreSQL und einem Float durchzuführen, können Benutzer auf Fehler stoßen zu Typinkompatibilität. Insbesondere die folgende Abfrage:
SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
gibt den Fehler „Operator existiert nicht: jsonb numeric“ zurück. Selbst eine explizite Umwandlung mit der ::float-Syntax führt zu dem Fehler „Operator existiert nicht: jsonb double precision“.
Um dieses Problem zu beheben, können Benutzer die JSON-Operatorsyntax von PostgreSQL nutzen, um die erforderlichen Werte als zu extrahieren Text statt JSON. Das ->> Der Operator, der Text zurückgibt, kann wie folgt verwendet werden:
SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5
Durch die Verwendung des ->> Um den Breitengradwert als Text zu extrahieren, können Benutzer ihn dann in einen Gleitkommawert umwandeln und die gewünschte arithmetische Operation fehlerfrei ausführen. Diese Technik ermöglicht eine effiziente Handhabung von JSONB-Datentypen in PostgreSQL.
Das obige ist der detaillierte Inhalt vonWie führt man arithmetische Operationen mit den JSONB- und Float-Typen von PostgreSQL korrekt durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!