Adakah GORM menyokong fungsi IIF menggunakan SQL?
P粉547362845
P粉547362845 2023-09-01 16:06:17
0
1
609
<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粉547362845
P粉547362845

membalas semua(1)
P粉718730956

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)
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan