我的用户应该能够通过在输入框中输入搜索词并从下拉框中选择他们想要搜索的列来搜索数据库。
但是,我找不到在 golang 中参数化查询的方法,以便将列名识别为列名而不是值。让我举个例子吧:
rows, err := db.Query("SELECT * FROM mytable WHERE ? = ?", col, searchStr)
我打开了 MySQL 日志记录,这是结果查询:
41 Execute SELECT *
FROM mytable
WHERE 'Username' = 'Foo'
显然Username不应该有单引号。
如何参数化此查询?我是否必须编写应用程序逻辑来检查每个查询的正确列名并使用字符串操作将列名添加到查询中(也许使用一些占位符来查找和替换)?
相关分类