Heim > Datenbank > MySQL-Tutorial > Wie kann ich den JSONB von PostgreSQL für arithmetische Operationen korrekt in Float konvertieren?

Wie kann ich den JSONB von PostgreSQL für arithmetische Operationen korrekt in Float konvertieren?

Linda Hamilton
Freigeben: 2024-12-30 17:51:11
Original
440 Leute haben es durchsucht

How Can I Correctly Convert PostgreSQL's jsonb to Float for Arithmetic Operations?

Konvertieren des JSONB-Typs von PostgreSQL in Float

Dieser Artikel befasst sich mit der Herausforderung, den JSONB-Typ von PostgreSQL in Float zu konvertieren. Die Schwierigkeit entsteht, wenn versucht wird, arithmetische Operationen an JSONB-Daten durchzuführen, was standardmäßig einen Fehler zurückgibt.

Erste Abfrage und Fehler

Eine erste Abfrage wird angezeigt:

SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
Nach dem Login kopieren

Diese Abfrage löst einen Fehler aus, da der Operator nicht auf JSONB- und numerische Typen angewendet werden kann. Das Hinzufügen einer expliziten Umwandlung, wie unten gezeigt, führt zu einem weiteren Fehler:

SELECT (json_data->'position'->'lat')::float + 1.0 AS lat FROM updates LIMIT 5;
Nach dem Login kopieren

Die Fehlermeldung zeigt nun an, dass der Operator nicht zwischen JSONB und Double Precision verwendet werden kann.

JSON-Operatoren

Das Problem ergibt sich aus der Tatsache, dass die -> Der Operator gibt ein JSON-Objekt zurück, während ->-> gibt Text aus. Um den JSONB-Wert korrekt in Float umzuwandeln, muss ->-> Operator sollte verwendet werden.

Lösung

Die Lösung für dieses Problem besteht darin, das -> Operator mit ->->:

SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5
Nach dem Login kopieren

Diese geänderte Abfrage wandelt den JSONB-Wert jetzt korrekt in Float um und führt die Additionsoperation ohne Fehler aus.

Das obige ist der detaillierte Inhalt vonWie kann ich den JSONB von PostgreSQL für arithmetische Operationen korrekt in Float konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage