前回の記事、Go言語とSQLでランダムの顧客10人の注文を10000件登録してみるで作成したtableから10件のデータを取得してみる。
package main import ( "database/sql" "fmt" "log" _ "github.com/mattn/go-sqlite3" ) func main() { db, err := sql.Open("sqlite3", "sample.db") if err != nil { log.Fatal(err) } rows, _ := db.Query("SELECT * FROM orders LIMIT 3") defer rows.Close() for rows.Next() { var id int var user_id int var price int err := rows.Scan(&id, &user_id, &price) if err != nil { log.Fatal(err) }
fmt.Print("id:") fmt.Println(id) fmt.Print("user_id:") fmt.Println(user_id) fmt.Print("price:") fmt.Println(price) fmt.Println("") } }
データをGo言語で取得するには、db.Queryを用いる。
次にfor rows.Next() で取得したいデータを決める。
rows.Scanする。rows.Scan(&id, &user_id, &price)で取得したいデータの変数の前に&を付ける。
最後にfmt.Printで表示する。fmt.Printは改行なしの表示で、fmt.Println(id)は改行ありの表示である。
端末で実行すると、下記のように表示される。
id:1
user_id:0
price:8814
id:2
user_id:2
price:7912
id:3
user_id:8
price:9382