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!