diff --git a/data.go b/data.go index 89bb28a..c193d0b 100644 --- a/data.go +++ b/data.go @@ -75,7 +75,7 @@ type station struct { } func findStations(db *sqlite.Conn, name string) (stations []*station, err error) { - err = sqlitex.Exec(db, "select id, name, lat, lon from stations where name like '%' || ? || '%' order by name asc", func(stmt *sqlite.Stmt) error { + err = sqlitex.Exec(db, "select id, name, lat, lon from stations where id = ? or ( name like '%' || ? || '%' and ? not in ( select id from stations ) ) order by name asc", func(stmt *sqlite.Stmt) error { stations = append(stations, &station{ id: stmt.ColumnText(0), name: stmt.ColumnText(1), @@ -83,7 +83,7 @@ func findStations(db *sqlite.Conn, name string) (stations []*station, err error) lon: stmt.ColumnFloat(3), }) return nil - }, name) + }, name, name, name) if err != nil { return nil, err } diff --git a/main.go b/main.go index 1f20cd6..771bc98 100644 --- a/main.go +++ b/main.go @@ -43,7 +43,7 @@ func main() { if len(stations) > 1 { fmt.Println("Multiple stations found") for i, s := range stations { - fmt.Printf("%d: %s\n", i+1, s.name) + fmt.Printf("%d: %s (%s)\n", i+1, s.name, s.id) } continue }