cari

Rumah  >  Soal Jawab  >  teks badan

Adakah GORM menyokong fungsi IIF menggunakan SQL?

<p>Saya mempunyai jadual untuk tugasan, jadual untuk penyelesaian dan jadual untuk pelajar. Saya ingin mendapatkan semula semua tugasan dan untuk setiap tugasan saya ingin menambah "bendera" yang menunjukkan jika pelajar yang sedang log masuk telah mencuba tugasan itu. </p> <p>Saya mencuba ini: </p> <pre class="brush:golang;toolbar:false;">import ( "fmt" "gorm.io/gorm" "pengekodan/json" "github.com/my_organisation/myorg-repo/db" ) pangkalan data var *gorm.DB var solutions[]db.Solution var listOfAsnmtIDs []uint func myfuncn (w http.ResponseWriter, r *http.Request){ //... _ = pangkalan data.Jadual("penyelesaian").Di mana("id_murid = ?", murid.ID).Pilih("tugasan_id").Cari(&penyelesaian) untuk _, penyelesaian := julat penyelesaian { listOfAsnmtIDs = tambah(listOfAsnmtIDs, solution.AssignmentID) } respon := pangkalan data.Jadual("tugasan").Pilih(`id, created_at, IIF((id IN ?), 'cuba', 'Not attempted') as attempted`, listOfAsnmtIDs).Cari(&semua Tugasan) jika respons.RowsAffected < respondToClient(w, 404, nol, "Tiada tugasan ditemui") kembali } //... } </pra></p>
P粉547362845P粉547362845470 hari yang lalu602

membalas semua(1)saya akan balas

  • P粉718730956

    P粉7187309562023-09-02 09:29:54

    Anda hanya perlu menyenaraikan parameter. Serupa dengan ini

        var mad string
        for i, solution := range solutions {
            mad += strconv.FormatUint(uint64(solution.AssignmentID), 10)
            if i != len(solutions) {
                mad += ","
            }
            listOfAsnmtIDs = append(listOfAsnmtIDs, solution.AssignmentID)
        }
    
        response := database.Table("assignments").Select(`id, created_at, IIF((id IN ?), 'attempted', 'Not attempted') as attempted`, mad).Find(&allAssignments)
    

    balas
    0
  • Batalbalas