Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyoal MySQL dengan sqlx Menggunakan Secebis Nilai?

Bagaimana untuk Menyoal MySQL dengan sqlx Menggunakan Secebis Nilai?

Barbara Streisand
Lepaskan: 2024-12-01 01:17:10
asal
747 orang telah melayarinya

How to Query MySQL with sqlx Using a Slice of Values?

Menyoal MySQL dengan sqlx dan sepotong nilai

Apabila menanyakan jadual pangkalan data untuk mendapatkan data berdasarkan nilai yang terkandung dalam kepingan, pengguna mungkin menghadapi ralat seperti yang ditunjukkan di bawah:

sql: converting Exec argument #0's type: unsupported type []int, a slice
quotes []
Salin selepas log masuk

Ralat ini menunjukkan bahawa pertanyaan itu mengharapkan jenis tertentu untuk parameter input, tetapi sebaliknya, ia menerima hirisan, yang bukan jenis yang disokong.

Untuk menyelesaikan isu ini, sqlx menyediakan fungsi pembantu yang mudah dipanggil In(). Fungsi ini mengambil kepingan nilai dan rentetan pertanyaan sebagai argumen dan mengembalikan pertanyaan yang diubah suai dengan ? bindvar. Pertanyaan ini kemudiannya boleh dipantulkan ke bahagian belakang pangkalan data yang sesuai menggunakan kaedah Rebind().

Berikut ialah contoh cara menggunakan In():

var qids []int

// fills qids on query dynamically
query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids)
if err != nil {
    log.Fatal(err)
}

// sqlx.In returns queries with the `?` bindvar, we can rebind it for our backend
//
query = database.SQL.Rebind(query)  // database.SQL should be a *sqlx.DB

err = database.SQL.Select(&quotes, query, args...)
if err != nil {
    log.Fatal(err)
}
Salin selepas log masuk

Kod di atas mendapatkan semula nilai daripada jadual 'petikan' di mana medan 'qid' sepadan dengan mana-mana nilai dalam kepingan qids.

Untuk rujukan lanjut dan contoh, lawati dokumentasi sqlx rasmi di http://jmoiron.github.io/sqlx/.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal MySQL dengan sqlx Menggunakan Secebis Nilai?. 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