Gorm 查询格式与 `%` 中断 - “预期 0 个参数,得到 1”

我在使用以下行查询 postgres 时收到错误“expected 0 arguments, got 1”:

db = db.Where("LOWER(name) LIKE LOWER('%?%')", nameSearch)

当我像这样将值硬编码到其中时,它会起作用:

db = db.Where("LOWER(name) LIKE LOWER('%some-value%')")

任何人都可以在这里发现我的问题,因为我有很多条件格式类似的工作,但这个,额外的%是打破。


繁星点点滴滴
浏览 107回答 1
1回答

www说

快速查看文档后,您似乎应该将通配符添加到nameSearch变量中:如此处所示db.Where("name LIKE ?", "%jin%").Find(&users)// SELECT * FROM users WHERE name LIKE '%jin%';那将是:db.Where("LOWER(name) LIKE LOWER(?)", fmt.Sprintf("%%%s%%", nameSearch))当然,你可以只使用"%" + nameSearch + "%"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go