服务器收到GET带有territory_id参数的请求。nil如果用户不需要按地区过滤,则该参数可以是,或者integer如果用户只想获取特定地区的记录,则可以有一个数字。
代码:
func GetDataList (response http.ResponseWriter, request * http.Request) {
params: = GetRequestParams (request.URL.Query ())
normalID, _: = strconv.Atoi (params ["normal_id"])
territoryId, _: = strconv.Atoi (params ["territory_id"])
var listToCheck [] ObjectDataNormal
query = `select * from get_list_for_predict (year: = $1, territory_in: = $2)`
rows, err = db.Queryx (query,
2011,
territoryId)
if rows! = nil {
// code
}
// code
}
func GetRequestParams (values url.Values) map [string] string {
urlValues: = make (map [string] string, len (values))
for k, v: = range values {
urlValues [k] = v [0]
}
return urlValues
}
postgresql中的存储过程是这样设计的,如果territory_inis ISNULL,则该参数的过滤器不起作用,否则,如果territory_inis 等于 5,例如,将记录 Region 字段中值为 5 的记录。
以及如何在服务器端实现这一点?如果我输入territory_id = nil邮递员,我会得到:
ERROR: invalid input syntax for integer: "nil"
如果为空,则:
ERROR: invalid input syntax for integer: "null".
也territroyID不可能相等nil。如何根据用户请求将 null 传递给函数?
理论上我可以检查邮资功能territory_in = 0,而不是IS NULL。因为当将 a 转换string为int( strconv.Atoi (params ["territory_id"]))时territory_in,它将被设置为 0。但是我想知道如何将 null 参数发送到 golang 中的存储函数?
我使用 sqlx 和 pgx。
梦里花落0921
相关分类