前回の記事、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