From 51a0623498933fe7e392cb801abb2a9d453c2618 Mon Sep 17 00:00:00 2001 From: Jan-Lukas Else Date: Sat, 20 Nov 2021 17:56:46 +0100 Subject: [PATCH] Fix query --- data.go | 4 ++-- main.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 }