Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menukar JSONB ke Terapung dengan betul dalam PostgreSQL?

Bagaimana untuk Menukar JSONB ke Terapung dengan betul dalam PostgreSQL?

Susan Sarandon
Susan Sarandonasal
2025-01-02 18:37:43251semak imbas

How to Correctly Convert JSONB to Float in PostgreSQL?

Penukaran JSONB kepada Terapung dalam PostgreSQL 9.4

Seorang pengguna PostgreSQL cuba menukar lajur jsonb kepada terapung menggunakan pertanyaan berikut:

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

Walau bagaimanapun, mereka menemui ralat:

ERROR:  operator does not exist: jsonb + numeric

Untuk menyelesaikan isu ini, pengguna mencuba penghantaran eksplisit menggunakan operator ::float, mengakibatkan ralat:

ERROR:  operator does not exist: jsonb + double precesion

Untuk menukar nilai jsonb kepada terapung, ia adalah penting untuk mengikut keutamaan pengendali yang betul. -> operator mengembalikan nilai JSON, manakala ->> operator mengembalikan nilai teks. Untuk berjaya menghantar ke terapung, anda perlu menggunakan ->> operator.

Sintaks pertanyaan yang betul ialah:

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

Dengan menggunakan ->> pengendali, nilai jsonb mula-mula ditukar kepada teks, yang kemudiannya boleh dihantar ke terapung menggunakan operator ::float.

Atas ialah kandungan terperinci Bagaimana untuk Menukar JSONB ke Terapung dengan betul dalam 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