xorm是一个Go语言ORM库
今天在使用过程中踩坑了,特此记录
使用func (*xorm.Session).SQL(query interface{}, args ...interface{}) *xorm.Session
或者func (*xorm.Engine).SQL(query interface{}, args ...interface{}) *xorm.Session
都仅会执行.SQL()里面的statement
若再对session执行func (session *Session) And(query interface{}, args ...interface{}) *Session
或者func (session *Session) Where(query interface{}, args ...interface{}) *Session
等其他条件都不会产生作用
eg.
func TestSQL(t *testing.T) {
session := db.GetModel().GetEngine().NewSession()
var hosts []db.Host
session.SQL("select * from host").Where("id=?", 1).Find(&hosts)
fmt.Println(hosts) // 会把id不是1的也查出来,说明Where无效
}
网友评论