Umwandeln von PostgreSQLs JSONB in Float
Beim Versuch, arithmetische Operationen für eine PostgreSQL-Spalte vom Typ JSONB mit numerischen Werten auszuführen, können Fehler auftreten um Nichtübereinstimmungen einzugeben. In diesem Artikel wird gezeigt, wie Sie dieses Problem beheben und JSONB-Werte erfolgreich in Gleitkommazahlen umwandeln können.
Die Hauptursache für die Fehler in der bereitgestellten Abfrage ist der Versuch, einen numerischen Wert (1,0) zu einem JSONB-Wert hinzuzufügen, was zu einem Ergebnis führt im Fehler „Operator existiert nicht“ angezeigt. Um dieses Problem zu lösen, können Sie eine Umwandlung verwenden, um den JSONB-Wert in einen Float umzuwandeln, bevor Sie den Vorgang ausführen.
Eine einfache Umwandlung des JSONB-Werts in einen Float reicht jedoch möglicherweise nicht aus, da PostgreSQL zwei Optionen für den Zugriff auf JSON-Werte bietet:
In Ihrem speziellen Fall, da Wenn Sie wissen, dass es sich bei den Breitengradwerten ausschließlich um JSON-Zahlen handelt, können Sie die folgende Abfrage verwenden, um sie in Gleitkommazahlen umzuwandeln:
SELECT (json_data->>'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5;
Diese überarbeitete Abfrage sollte erfolgreich umgewandelt werden JSONB-Lat-Werte in Floats umwandeln, sodass Sie die gewünschten Vorgänge ausführen können.
Das obige ist der detaillierte Inhalt vonWie wandelt man PostgreSQL JSONB für arithmetische Operationen in Float um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!