XORM执行SQL()的坑 2021-10-09

2021-10-09  本文已影响0人  9_SooHyun

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无效

}
上一篇下一篇

猜你喜欢

热点阅读