Heim  >  Fragen und Antworten  >  Hauptteil

Unterstützt GORM IIF-Funktionen mit SQL?

<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粉547362845P粉547362845435 Tage vor588

Antworte allen(1)Ich werde antworten

  • P粉718730956

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

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

        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)
    

    Antwort
    0
  • StornierenAntwort