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

Bagaimana untuk Menghantar PostgreSQL JSONB ke Terapung untuk Operasi Aritmetik?

Linda Hamilton
Lepaskan: 2025-01-02 21:18:38
asal
258 orang telah melayarinya

How to Cast PostgreSQL JSONB to Float for Arithmetic Operations?

Menghantar JSONB PostgreSQL ke Terapung

Apabila cuba melakukan operasi aritmetik pada lajur jenis PostgreSQL JSONB yang mengandungi nilai angka, anda mungkin menghadapi ralat disebabkan untuk menaip tidak sepadan. Artikel ini menunjukkan cara untuk mengatasi isu ini dan berjaya menghantar nilai JSONB ke terapung.

Punca ralat dalam pertanyaan yang diberikan ialah percubaan untuk menambah nilai angka (1.0) pada nilai JSONB, yang menghasilkan dalam ralat "pengendali tidak wujud". Untuk menangani perkara ini, anda boleh menggunakan penghantaran untuk menukar nilai JSONB kepada apungan sebelum melaksanakan operasi.

Walau bagaimanapun, hanya menghantar nilai JSONB kepada terapung mungkin tidak mencukupi, kerana PostgreSQL menawarkan dua pilihan untuk mengakses nilai JSON:

  • json_data->'position': Mengembalikan nilai JSON, yang tidak boleh dihantar terus ke apungan.
  • json_data->>'position': Mengembalikan nilai teks, yang boleh dihantar ke apungan menggunakan ::float.

Dalam kes khusus anda, kerana anda tahu bahawa nilai lat adalah semua nombor JSON, anda boleh menggunakan pertanyaan berikut untuk menghantarnya terapung:

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

Pertanyaan yang disemak ini sepatutnya berjaya menghantar nilai lat JSONB ke terapung, membolehkan anda melakukan operasi yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar PostgreSQL JSONB ke Terapung untuk Operasi Aritmetik?. 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