像这样:
在表中选择*(?)
当我使用查询接口db.Query(sSql,vArgs ...),hwo输入para时?
像这样的字符串:“ a,b,c”?
还是像这样的数组:[a,b,c]?
或像这样的切片:[“ a”,“ b”,“ c”]?
那都失败了,哭了...
这是#107的重复项。
那行不通。
准备后, ?
不能匹配任何更改语句执行计划的内容。
这是无法使用的情况(可能不完整):
您将不得不重写查询。 如果您始终有3个参数,请输入
SELECT * FROM TABLE WHERE A IN (?, ?, ?)
。
如果不是,则必须根据slice元素的数量创建查询或寻找其他方法。
嗨Arnehormann谢谢您的回答,如果使用这样的“ SELECT * FROM TABLE WHERE A IN(?,?,?)”,我必须知道有多少个para;但是通常我不知道有多少para,所以我想在这样的字符串输入参数中使用:SELECT * FROM TABLE WHERE A IN(?),并从字符串或[] string ext查询。
谢谢你
br为您。
@ zhaohui-kevin,除非我错过了什么。 你_always_知道有多少PARAMS有,因为你必须要么通过个人args设置为Query()
或扩大与片s...
所以只是构造查询基于知识的正确数量的占位符的HTTP ://play.golang.org/p/mA2KwolV-n
通过阅读本文,我不确定您是否知道现在该做什么。
如果您不预先知道参数的数量,则不能使用?
。
所以你需要做类似的事情
if len(inValues) > 0 {
query = "SELECT * FROM " + table + " WHERE " + column +
" IN (?" + strings.Repeat(",?", len(inValues)-1)) + ")"
....
}
编辑谢谢@DisposaBoy ,看起来很熟悉:+1:
我知道如何这样使用,但这不是我的主意:)非常感谢。
在2013-11-22 19:06:15,“ Arne Hormann” [email protected]写道:
通过阅读本文,我不确定您是否知道现在该做什么。
如果您事先不知道参数的数量,则不能使用?。
所以你需要做类似的事情
iflen(inValues)> 0 {query =“ SELECT * FROM” + table +“其中” + column +“ IN(?” + strings.Repeat(“,?”,len(inValues)-1))+“)”。 ..}
-
直接回复此电子邮件或在GitHub上查看。
最有用的评论
这是#107的重复项。
那行不通。
准备后,
?
不能匹配任何更改语句执行计划的内容。这是无法使用的情况(可能不完整):
您将不得不重写查询。 如果您始终有3个参数,请输入
SELECT * FROM TABLE WHERE A IN (?, ?, ?)
。如果不是,则必须根据slice元素的数量创建查询或寻找其他方法。