Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menggunakan Fungsi `In()` SQLx untuk Menyoal MySQL dengan Sekeping ID?

Bagaimana untuk Menggunakan Fungsi `In()` SQLx untuk Menyoal MySQL dengan Sekeping ID?

Susan Sarandon
Susan Sarandonasal
2024-11-28 09:54:10716semak imbas

How to Use SQLx's `In()` Function to Query MySQL with a Slice of IDs?

Menggunakan SQLx untuk Menyoal MySQL dengan IN daripada Slice

Dalam SQLx, timbul keperluan untuk menanyakan jadual dengan nilai yang disimpan dalam kepingan. Ini boleh dicapai dengan menggunakan fungsi pembantu In().

Contoh Kod

Untuk menangani ralat yang diberikan, coretan kod berikut boleh digunakan:

var qids []int

// Populate qids dynamically

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

database.SQL := sqlx.MustConnect("driver_name", "dsn")
query = database.SQL.Rebind(query)  // Assuming database.SQL is a *sqlx.DB

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

Fungsi

  • Fungsi In() menyediakan pertanyaan dengan mengambil hujah dan mengikat semula mereka.
  • Rebind() menukarkan pertanyaan untuk menggunakan pembolehubah ikatan yang sesuai untuk bahagian belakang pangkalan data tertentu.
  • Dengan menggabungkan In() dan Rebind(), pertanyaan itu disediakan dan dioptimumkan untuk pelaksanaan .

Sumber Tambahan

Untuk rujukan lanjut, perkara berikut dokumentasi disyorkan:

  • Dokumentasi SQLx: http://jmoiron.github.io/sqlx/
  • Dokumentasi fungsi In(): https://godoc.org/github. com/jmoiron/sqlx#In
  • Dokumentasi fungsi Rebind(): https://godoc.org/github.com/jmoiron/sqlx#Rebind

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Fungsi `In()` SQLx untuk Menyoal MySQL dengan Sekeping ID?. 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