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>