In PostgreSQL führt der Versuch, mathematische Operationen mit JSONB-Daten durchzuführen, bei der Konvertierung oft zu Fehlern wie „Operator existiert nicht“. float wird nicht explizit angegeben.
Um dieses Problem zu beheben, ziehen Sie den unterschiedlichen JSON-Wertabruf in Betracht Operatoren:
Da Floats als Text in JSONB gespeichert werden, Es ist notwendig, das ->> zu verwenden. (Doppelpfeil)-Operator, um die Zeichenfolgendarstellung des Floats zu extrahieren, bevor versucht wird, ihn in Float umzuwandeln.
Betrachten Sie beispielsweise die folgende Abfrage:
SELECT (json_data->'position'->'lat')::float + 1.0 AS lat FROM updates LIMIT 5
Hier ist das -> Der (Pfeil-)Operator wird zunächst zum Extrahieren des JSON-Objekts „Position“ verwendet. Das ->> Der Operator (Doppelpfeil) wird dann verwendet, um den Zeichenfolgewert von „lat“ abzurufen. Schließlich wird der Casting-Operator ::float verwendet, um die Zeichenfolge in einen Float umzuwandeln.
Durch die Verwendung des entsprechenden JSON-Wertabrufoperators können Sie JSONB-Werte in Ihren PostgreSQL-Abfragen erfolgreich in Floats umwandeln.
Das obige ist der detaillierte Inhalt vonWie wandelt man PostgreSQL-JSONB-Daten für mathematische Operationen in Float um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!