为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用变量通过 pgx 驱动程序获取不同的表?

如何使用变量通过 pgx 驱动程序获取不同的表?

Go
侃侃尔雅 2023-07-31 15:01:54
这是一个获取法国谚语的函数:func (r *proverbRepo) SelectFrByDegree(search string) (proverbs []domain.Proverb, err error) {    rows, err := r.Db.Query(context.Background(), `SELECT ID, proverb        FROM proverbs_fr         WHERE proverb % $1        ORDER BY proverb <-> $1 DESC LIMIT 5    `, search)    if err != nil {        return    }    for rows.Next() {        var prov domain.Proverb        err = rows.Scan(&prov.ID, &prov.Literal)        if err != nil {            return        }        proverbs = append(proverbs, prov)    }    return}有时我想从 per say proverbs_bzh 表中获取另一个谚语表。是否可以使用变量名获取不同的表?SELECT * FROM $1例如...
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

这不是绑定变量的意图。它应该用于查询重用的数据输入。如果表未知,则无法解析查询并重用执行计划。因此,您的选择是替换字符串。

警告:如果表名来自外部源,请务必检查它是否是正确的标识符(提示:防止 SQL 注入)

查看完整回答
反对 回复 2023-07-31
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信