Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengendalikan Slice Arguments dalam lib/pq SQL Query?

Bagaimana untuk Mengendalikan Slice Arguments dalam lib/pq SQL Query?

DDD
DDDasal
2024-12-19 12:06:10403semak imbas

How to Handle Slice Arguments in lib/pq SQL Queries?

Ralat Penukaran Parameter: Potongan Tidak Disokong dalam Pertanyaan

Apabila menggunakan lib/pq untuk melaksanakan pertanyaan SQL, adalah penting untuk memastikan bahawa jenis parameter adalah disokong. Dalam satu keadaan, kod berikut mengalami ralat:

somevars := []int{1, 2, 3, 4}
rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 IN(,,,);", somevars)

Mesej ralat menunjukkan: "sql: converting argument $1 type: unsupported type []int, a slice of int". Ralat ini menyerlahkan bahawa lib/pq tidak boleh mengendalikan hirisan secara langsung sebagai argumen.

Penyelesaian: Menggunakan pq.Array

Untuk menyelesaikan isu ini, pq.Array boleh digunakan. Fungsi ini menukar hirisan Go kepada ARRAY Postgres, yang kemudiannya dikenali oleh pertanyaan.

Kod yang diubah suai di bawah menunjukkan perkara ini:

somevars := []int{1, 2, 3, 4}
rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 = any();", pq.Array(somevars))

Dengan menggunakan pq.Array, hirisan adalah diubah menjadi ARRAY, membolehkannya digunakan sebagai hujah yang sah dalam pertanyaan. Ini membolehkan pelaksanaan pertanyaan yang lancar dengan hujah keratan.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Slice Arguments dalam lib/pq SQL Query?. 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