やり方
GORMで動的なSQLの実行や検索を行いたい場合は、以下のようにGORMのSQLメソッドのDBインスタンスを受け取って、そのインスタンスでSQLを実行する必要があります。
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
db = db.Table("test_table").Select("*")
// 動的に実行したいSQL
db = db.Where("検索条件")
// SQLの実行
rows, err := db.Rows()
例
例えばtest.db
に以下のuser
というテーブルがあったとします。
id | name |
---|---|
1 | たかし |
user
テーブルのたかしの情報を検索したい場合、以下の様なコードを実行すれば、情報の取得ができます。
type User struct {
Id int
Name string
}
func main(){
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
db.Table("test_table").Select("*")
// たかしの検索
db = db.Where("name LIKE %たかし%")
// SQLの実行
user := &User{}
db.Find(user)
}
最後に
GROMで動的なSQLの実行や検索のやり方についての記事がなかったため、本記事を作成いたしました。
今度はより分かりやすく具体的な例を作成したいので、Echoと組み合わせた記事を作成したいです。