Unterstützt GORM IIF-Funktionen mit SQL?
P粉547362845
P粉547362845 2023-09-01 16:06:17
0
1
610
<p>Ich habe eine Tabelle für Aufgaben, eine Tabelle für Lösungen und eine Tabelle für Schüler. Ich möchte alle Aufgaben abrufen und für jede Aufgabe eine „Markierung“ hinzufügen, die anzeigt, ob der aktuell angemeldete Schüler die Aufgabe versucht hat. </p> <p>Ich habe Folgendes versucht: </p> <pre class="brush:golang;toolbar:false;">import ( "fmt" "gorm.io/gorm" „encoding/json“ "github.com/my_organisation/myorg-repo/db" ) var-Datenbank *gorm.DB var Solutions[]db.Solution var listOfAsnmtIDs []uint func myfuncn (w http.ResponseWriter, r *http.Request){ //...... _ = Datenbank.Table("Lösungen").Where("pupil_id = ?", Schüler.ID).Select("assignment_id").Find(&solutions) für _, Lösung := Bereichslösungen { listOfAsnmtIDs = append(listOfAsnmtIDs, Solution.AssignmentID) } Antwort := Datenbank.Table("Aufgaben").Select(`id, erstellt_at, IIF((id IN ?), 'versucht', 'Nicht versucht') wie versucht`, listOfAsnmtIDs).Find(&allAssignments) wenn Response.RowsAffected < respondToClient(w, 404, nil, "Keine Zuweisungen gefunden") zurückkehren } //...... } </pre></p>
P粉547362845
P粉547362845

Antworte allen(1)
P粉718730956

您只需要列出参数。类似于这样

    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)
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage