Adakah GORM menyokong fungsi IIF menggunakan SQL?
P粉547362845
2023-09-01 16:06:17
<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>
Anda hanya perlu menyenaraikan parameter. Serupa dengan ini