2016-11-08 3 views
3

Ich benutze Postgres 9.5 mit und mit Golang-Bibliothek lib/pq, um mit der Datenbank zu interagieren. Ich führe eine Select-Abfrage aus, die mehrere Zeilen zurückgibt, und dann iteriere ich mit for rows.Next(). Ist es sowieso möglich, dass ich vor dem Lat-Record stoppe? Ich möchte etwas anderes auf der Konsole drucken, wenn es die letzte Aufzeichnung ist. So etwas wie das Folgende:Wie identifiziert man die letzte Zeile in der Ergebnismenge postgres?

for rows.Next() { 

    var id string 
    err = rows.Scan(&id) 
    if err != nil { 
     log.Printf("Error in rows.Scan: %s\n", err) 
    } 

    if (row is not last) { 
     fmt.Println(id + "I am not last") 
    } else { 
     fmt.Println(id + "I am last") 
    } 
} 

Antwort

3

Sie können so etwas wie eine Do While-Schleife in gehen.

notLast := rows.Next() 
for notLast { 
    //... rows.Scan 
    notLast = rows.next() 
    if notLast { 
     fmt.Println(id + "I am not last") 
    } else { 
     fmt.Println(id + "I am last") 
    } 
} 
Verwandte Themen