【发布时间】:2016-03-20 14:08:32
【问题描述】:
我找不到一个很好的例子来说明将文本查询的字符串部分与值连接起来的正确方法。例如:
query := `SELECT column_name FROM table_name
WHERE column1_name = %d AND column2_name = %d` % (val1, val2)
rows, res, err := db.Query(query)
这不起作用。编译器返回syntax error: unexpected comma, expecting )
可能是因为我正在尝试使用 python 样式的元组。
如果我把它改写成
query := `SELECT column_name FROM table_name
WHERE column1_name = %d AND column2_name = %d` % val1
我收到(mismatched types string and int),它告诉我元组是问题之一。
如果我先将参数转换为字符串,我会得到(operator % not defined on string)
在 python 中,你会做类似的事情
query = """SELECT column_name FROM table_name
WHERE column1_name = %d
AND column2_name = %d""" % (val1, val2)
或
query = """SELECT column_name FROM table_name
WHERE column1_name = %s
AND column2_name = %s""" % (val1_string, val2_string)
我知道我可以将值转换为字符串并与"STRING" + var + "STRING" 连接,但与 python 版本相比,这看起来真的很混乱。 Go 中的那个 python 代码相当于什么?具体包括元组部分,并连接一个字符串和一个整数。
【问题讨论】:
-
您在寻找
Sprintf吗? -
有一个很棒的视频,我也想给你参考一下,它是关于如何在 golang 中使用数据库的:youtube.com/watch?v=m879N2rzn2g
标签: go