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
Lepaskan: 2024-12-31 07:21:10
asal
531 orang telah melayarinya

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;
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan