我正在尝试对sqlite数据库运行查询。这种格式似乎有效:
stmt, _ = DBHandle.Prepare("SELECT * FROM Purchases WHERE Product LIKE ?")
defer stmt.Close()
rows, _ = stmt.Query(fmt.Sprintf("%" + mapSearchValues["Product"] + "%")
rows.Close()
for rows.Next() {...
当地图中有值时返回结果。如果我尝试像
这样的变体stmt, _ = DBHandle.Prepare("SELECT * FROM Purchases WHERE ? LIKE ?")
defer stmt.Close()
rows, _ = stmt.Query("Product", "%" + mapSearchValues["Product"] + "%")
rows.Close()
for rows.Next() {...
我得到0结果。
我已尝试使用stmt.Query的不同变体来将多个参数放入预准备语句中,但它似乎并不喜欢它们中的任何一个。
(我想要得到的最终结果是获取字符串映射并使用这些值运行查询;函数不知道必须检查哪些列(产品?产品和购买者?价格?)所以我希望从地图构建一个查询然后运行查询,迭代值来插入先前通过键重构并构造字符串构建的查询中的值。因为我没有太多的Sqlite和Go经验,我可能会接近这个错误,但认为使用参数化的准备和查询可能会有效。)