PostgreSQL の jsonb から Float への変換の問題に対処する
PostgreSQL の jsonb 型と float を含む算術演算を実行しようとすると、次のようなエラーが発生する可能性があります。タイプの互換性がないため。特に、次のクエリ:
SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
は、「演算子が存在しません: jsonb numeric」というエラーを返します。 ::float 構文を使用した明示的なキャストでも、「演算子が存在しません: jsonb 倍精度」というエラーが発生します。
この問題を解決するには、ユーザーは PostgreSQL の JSON 演算子構文を利用して、必要な値を次のように抽出できます。 JSON の代わりにテキストを使用します。 ->>テキストを返す演算子は、次のように使用できます。
SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5
->> を使用することで、演算子を使用して緯度値をテキストとして抽出すると、ユーザーはそれを float にキャストして、エラーなしで目的の算術演算を実行できます。この手法により、PostgreSQL で jsonb データ型を効率的に処理できるようになります。
以上がPostgreSQL の jsonb および Float 型を使用して算術演算を正しく実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。