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

How to use a variable to fetch different table with pgx driver?

这是一个获取法语谚语的函数:

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 % 
        ORDER BY proverb <->  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
}

有时我想从每个说法 proverbs_bzh table 中获取另一个谚语 table。是否可以使用变量名获取不同的 table?

SELECT * FROM 

例如...

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

警告: 如果 table 名称来自外部来源,请务必检查它是否是正确的标识符(提示:保护免受 SQL注入)