解決PostgreSQL 的jsonb 到Float 轉換問題
當嘗試執行涉及PostgreSQL 的jsonb 類型和float 的算術類型和float遇到錯誤,因為鍵入不相容。特別是,以下查詢:
SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
將傳回錯誤「運算子不存在:jsonb numeric。」即使使用::float 語法明確轉換也會導致錯誤「運算子不存在:jsonb 雙精確度。運算子語法來提取所需的值,如下所示文字而不是 JSON。 ->>傳回文字的運算子可以如下使用:
透過使用->>運算子將緯度值提取為文本,然後使用者可以將其轉換為浮點數並執行所需的算術運算,而不會有任何錯誤。該技術允許在 PostgreSQL 中高效處理 jsonb 資料類型。SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5
以上是如何正確使用PostgreSQL的jsonb和Float類型進行算術運算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!