假设您有以下 SQL 查询:
SELECT *
FROM foo
WHERE type = ?
AND subtype IN (?)
并且您有以下可能的数据(我们假设用户界面可以设置这些数据):
var Type int
var SubTypes []int
在 的情况下SubTypes,我们谈论的是多项选择。
现在,以下代码将不起作用:
rows, err := sqldb.Query(`SELECT *
FROM foo
WHERE type = ?
AND subtype IN (?)`, Type, SubTypes)
因为驱动程序(至少是mysql本示例中使用的驱动程序)无法识别[]slice. 键入以将其SubTypes...分解( ) 也不起作用,因为 A) 您不能拥有多个分解参数,而 B) 即使可以,您的 SQL 也仅支持单个项目 ( (?))。
慕工程0101907
相关分类