Meneroka Pertanyaan Ad Hoc dalam Pakej SQL Go
Walaupun dokumentasi mencadangkan bahawa menanya data dalam Go menggunakan pakej SQL memerlukan mengetahui kiraan lajur dan jenis pada masa penyusunan, ini tidak benar. Jenis sql.Rows menawarkan penyelesaian untuk pertanyaan SQL yang fleksibel dan ad hoc.
Pendapatan Metadata Lajur Dinamik
Kaedah Lajur dalam sql.Rows menyediakan senarai bagi nama lajur hasil. Ini membolehkan anda menentukan secara dinamik bilangan lajur yang dikembalikan oleh pertanyaan sewenang-wenangnya.
Mengimbas Jenis Data Tidak Diketahui
Kaedah Imbasan menyokong nilai pengimbasan jenis yang tidak diketahui ke dalam sama ada kepingan bait mentah (*[]bait) atau nilai{} antara muka. Ini membolehkan anda mendapatkan semula data lajur tanpa menentukan jenisnya terlebih dahulu.
Bekerja dengan Pertanyaan Ad Hoc
Menggabungkan teknik ini, anda boleh melaksanakan pertanyaan ad hoc dan mendapatkan data ke dalam sekeping nilai antara muka{}:
<code class="go">columnNames, err := rows.Columns() if err != nil { // Handle error } columns := make([]interface{}, len(columnNames)) columnPointers := make([]interface{}, len(columnNames)) for i := 0; i < len(columnNames); i++ { columnPointers[i] = &columns[i] } if err := rows.Scan(columnPointers...); err != nil { // Handle error }</code>
Selepas ini, lajur slice akan mengandungi nilai yang dinyahkodkan untuk semua lajur dalam baris hasil. Dengan memanfaatkan kaedah Lajur dan Imbasan, anda boleh mengendalikan pertanyaan ad hoc dengan berkesan dalam pakej SQL Go.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyoal Data Dengan Jenis Lajur Tidak Diketahui dalam Pakej SQL Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!