发布时间:2024-11-21 18:08:08
全局SQL函数
除了定义全局变量,我们还可以通过函数来实现全局SQL。这种方法允许我们在运行时根据不同的条件动态生成SQL语句。以下是一个示例: ```go func GetSelectUsersSQL(condition string) string { return fmt.Sprintf("SELECT * FROM users WHERE %s", condition) } ``` 在这个例子中,我们定义了一个函数 `GetSelectUsersSQL`,该函数接受一个参数 `condition`,并返回一个根据传入的条件动态生成的`SELECT * FROM users` SQL语句。全局SQL使用
一旦我们定义了全局SQL变量或函数,我们可以在任何地方直接使用它们。以下是一个简单的示例: ```go package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) var sqlMap = map[string]string{ "SELECT_USERS": "SELECT * FROM users", } func main() { db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/dbname") if err != nil { fmt.Println(err) return } defer db.Close() rows, err := db.Query(sqlMap["SELECT_USERS"]) if err != nil { fmt.Println(err) return } defer rows.Close() var id int var name string var age int for rows.Next() { err := rows.Scan(&id, &name, &age) if err != nil { fmt.Println(err) return } fmt.Println(id, name, age) } if err := rows.Err(); err != nil { fmt.Println(err) return } } ``` 在这个示例中,我们使用了 `sqlMap["SELECT_USERS"]` 来获取全局SQL变量的值,并将其作为SQL查询语句传递给 `db.Query()` 函数。