Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyoal MySQL dengan Sekeping ID Menggunakan SQLx?

Bagaimana untuk Menyoal MySQL dengan Sekeping ID Menggunakan SQLx?

DDD
DDDasal
2024-12-05 12:34:10901semak imbas

How to Query MySQL with a Slice of IDs Using SQLx?

Menggunakan SQLx untuk Menyoal MySQL untuk Nilai dalam Slice

Apabila menanyakan jadual MySQL untuk nilai yang terkandung dalam kepingan, pengguna mungkin menghadapi ralat yang serupa dengan:

sql: converting Exec argument #0's type: unsupported type []int, a slice

Isu ini timbul kerana SQLx sememangnya tidak menyokong pertanyaan dengan kepingan sebagai hujah. Walau bagaimanapun, ia menyediakan penyelesaian melalui fungsi In()nya.

Penyelesaian dengan In()

Untuk menyelesaikan ralat ini, langkah berikut boleh diambil:

  1. Sediakan pertanyaan menggunakan In() untuk memasukkan kepingan sebagai an hujah:

    query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids)
    if err != nil {
     log.Fatal(err)
    }
  2. Ikat semula pertanyaan untuk menjadikannya serasi dengan bahagian belakang pangkalan data:

    query = database.SQL.Rebind(query)
  3. Laksanakan pertanyaan menggunakan Select( ):

    err = database.SQL.Select(&quotes, query, args...)

Gabungan dalam Satu Baris

Keseluruhan proses boleh dipermudahkan menjadi satu baris:

err = database.SQL.Select(&quotes, database.SQL.Rebind(query), args...)

Sumber

Untuk contoh dan dokumentasi tambahan, sila rujuk laman web rasmi SQLx: http: //jmoiron.github.io/sqlx/

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