Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menghantar Data JSONB PostgreSQL ke Terapung untuk Operasi Matematik?

Bagaimana untuk Menghantar Data JSONB PostgreSQL ke Terapung untuk Operasi Matematik?

DDD
Lepaskan: 2024-12-29 14:48:11
asal
853 orang telah melayarinya

How to Cast PostgreSQL JSONB Data to Float for Mathematical Operations?

Menghantar Data JSONB PostgreSQL ke Terapung

Dalam PostgreSQL, percubaan untuk melaksanakan operasi matematik dengan data JSONB selalunya mengakibatkan ralat seperti "pengendali tidak wujud" apabila penukaran kepada float tidak dinyatakan secara eksplisit.

Untuk menyelesaikan isu ini, pertimbangkan JSON yang berbeza pengendali perolehan nilai:

  • -> (Operator Anak Panah): Mengembalikan nilai JSON sebagai JSON.
  • ->> (Pengendali Anak Panah Berganda): Mengembalikan teks nilai.

Memandangkan apungan disimpan sebagai teks dalam JSONB, anda perlu menggunakan ->> (Double Arrow) operator untuk mengekstrak perwakilan rentetan apungan sebelum cuba menghantarnya kepada terapung.

Sebagai contoh, pertimbangkan pertanyaan berikut:

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

Di sini, tanda -> Operator (Arrow) pada mulanya digunakan untuk mengekstrak 'kedudukan' objek JSON. ->> Operator (Double Arrow) kemudiannya digunakan untuk mendapatkan semula nilai rentetan 'lat'. Akhir sekali, operator ::float casting digunakan untuk menukar rentetan kepada apungan.

Dengan menggunakan pengendali perolehan nilai JSON yang sesuai, anda boleh berjaya menghantar nilai JSONB ke terapung dalam pertanyaan PostgreSQL anda.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Data JSONB PostgreSQL ke Terapung untuk Operasi Matematik?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan