长话短说,我想用预准备语句或其他任何东西来更改sql查询的选择部分,而不是使用,因为我不希望用户输入直接进入查询。fmt.Sprintf
我正在尝试根据用户的请求从数据库中选择两个特定的列。如果我像这样对列名进行硬编码,它工作得很好(我简化了这个问题的查询):
query := `SELECT
m.first_name,
m.created_at
FROM
member AS m
INNER JOIN device AS d
ON d.member_id = m.member_id`
WHERE m.member_id = ?
但是,如果我使用此查询,则不起作用:
query := `SELECT
m.?,
m.created_at
FROM
member AS m
INNER JOIN device AS d
ON d.member_id = m.member_id`
WHERE m.member_id = ?
对于这两个查询,我都使用了 *sql。分贝。用于用参数绑定占位符的 QueryContext:。在查看了sql驱动程序中的所有示例代码后,我意识到我无法将select部分与预准备语句中的参数动态绑定(如果我错了,请纠正我)。我以为这有效 ?在条件中标记。db.QueryContext(ctx, query, args)
在数据库/sql 包中,有没有更好的方法来动态构建 Sql Select 部分,而无需直接在查询中使用用户输入?
汪汪一只猫
相关分类