Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Operasi Aritmetik dengan betul dengan jsonb dan Jenis Terapung PostgreSQL?

Bagaimana untuk Melakukan Operasi Aritmetik dengan betul dengan jsonb dan Jenis Terapung PostgreSQL?

Barbara Streisand
Barbara Streisandasal
2024-12-31 07:21:10580semak imbas

How to Correctly Perform Arithmetic Operations with PostgreSQL's jsonb and Float Types?

Mengatasi jsonb PostgreSQL kepada Isu Penukaran Terapung

Apabila cuba melakukan operasi aritmetik yang melibatkan jenis jsonb PostgreSQL dan apungan yang sepatutnya, pengguna mungkin menghadapi ralat untuk menaip ketidakserasian. Khususnya, pertanyaan berikut:

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

akan mengembalikan ralat "pengendali tidak wujud: jsonb numeric." Malah penghantaran eksplisit menggunakan sintaks ::float mengakibatkan ralat "operator does not exist: jsonb double precision."

Untuk menyelesaikan isu ini, pengguna boleh mengambil kesempatan daripada sintaks operator JSON PostgreSQL untuk mengekstrak nilai yang diperlukan sebagai teks bukannya JSON. ->> operator, yang mengembalikan teks, boleh digunakan seperti berikut:

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

Dengan menggunakan ->> operator untuk mengekstrak nilai latitud sebagai teks, pengguna kemudian boleh menghantarnya ke apungan dan melakukan operasi aritmetik yang diingini tanpa sebarang ralat. Teknik ini membolehkan pengendalian yang cekap bagi jenis data jsonb dalam PostgreSQL.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Operasi Aritmetik dengan betul dengan jsonb dan Jenis Terapung PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn