我想使用 SQL 锅炉和 golang 在 MYSQL 中执行 LIKE 操作
我在用
github.com/volatiletech/sqlboiler/v4/queries/qm
.
clause = qm.Where(fmt.Sprintf("post.deleted_at is null"))
queryMods := []qm.QueryMod{
clause,
qm.Offset(gpi.Offset),
qm.Limit(gpi.Limit),
orderByMod,
qm.Load(dbmodels.PostRels.ImpartWealth), // the user who posted
}
if searchKey != "" {
where := fmt.Sprintf(`user on user.impart_wealth_id=post.impart_wealth_id
and user.screen_name like ? or user.email like ? `)
queryMods = append(queryMods, qm.InnerJoin(where, "%"+searchKey +"%", "%"+searchKey +"%"))
}
posts, err := dbmodels.Posts(queryMods...).All(ctx, m.db)
[]qm.QueryMod{qmhelper.WhereQueryMod{Clause:"post.deleted_at is null",
Args:[]interface {}(nil)},
qm.offsetQueryMod{offset:0},
qm.limitQueryMod{limit:1},
qm.orderByQueryMod{clause:"created_at desc, post_id desc"},
qm.loadQueryMod{relationship:"ImpartWealth", mods:[]qm.QueryMod(nil)},
qm.innerJoinQueryMod{clause:"user on user.impart_wealth_id=post.impart_wealth_id \n\t\tand user.screen_name like ? or user.email like ? ",
args:[]interface {}{"%j%", "%j%"}}}
在这里 Like 不起作用。
数据正在获取,但就像操作不起作用一样,即没有获取使用电子邮件或屏幕名称过滤的数据。
过滤不起作用