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 + "%"