Alias(string)给Table设定一个别名
package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" "log" "time" ) var engine *xorm.Engine type User struct { Name string `xorm:"varchar(25) 'name'"` Id int `xorm:"pk 'id' autoincr"` CreatedAt time.Time `xorm:"created"` } func main() { var err error engine, err = xorm.NewEngine("mysql", "root:123456@/test") if err != nil { log.Fatal(err) return } err = engine.CreateTables(User{}) if err != nil { log.Fatal(err) return } //插入数据部分 u := make([]User,3) u[0].Name="u0" u[1].Name="u1" _, err = engine.Insert(u) if err!=nil { log.Fatal(err) return } uu :=new(User) //查询结果为空 has,err := engine.Alias("alias") .Where("alias.name = ?","u").Get(uu) if err!=nil{ log.Fatal(err) return } fmt.Println("要查询的name是u的数据是否在数据库里:",has) if has { fmt.Println("uid:",uu.Id," uname:" ,uu.Name," utime:",uu.CreatedAt) } // 一个查询条件 has,err = engine.Alias("alias") .Where("alias.name = ?","u0").Get(uu) if err!=nil{ log.Fatal(err) return } fmt.Println("name是u0的数据是否在数据库里",has) if has { fmt.Println(" name是u0的数据在数据库里,而且他的uid:",uu.Id," uname:" ,uu.Name," utime:",uu.CreatedAt) } //and条件查询 has,err = engine.Alias("alias") .Where("alias.name = ?","u0").And("alias.id =?","1").Get(uu) if err!=nil{ log.Fatal(err) return } fmt.Println("name为u0,id为1的数据是否在数据库里",has) if has { fmt.Println(" name为u0,id为1的数据在数据库里,而且他的uid:",uu.Id," uname:" ,uu.Name," utime:",uu.CreatedAt) } //or条件查询 has,err = engine.Alias("alias") .Where("alias.name = ?","u0").Or("alias.name =?","u").Get(uu) if err!=nil{ log.Fatal(err) return } fmt.Println("name为u0或者为u的数据在数据库里",has) if has { fmt.Println(" name为u0或者为u的数据在数据库里,而且他的uid:",uu.Id," uname:" ,uu.Name," utime:",uu.CreatedAt) } /* 输出: 要查询的name是u的数据是否在数据库里: false name是u0的数据是否在数据库里 true name是u0的数据在数据库里,而且他的uid: 6 uname: u0 utime: 2019-05-26 14:17:51 +0800 CST name为u0,id为1的数据是否在数据库里 false name为u0或者为u的数据在数据库里 true name为u0或者为u的数据在数据库里,而且他的uid: 6 uname: u0 utime: 2019-05-26 14:17:51 +0800 CST */ }
Asc(…string)指定字段名正序排序/Desc(…string)指定字段名逆序排序
package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" "log" "time" ) var engine *xorm.Engine type User struct { Name string `xorm:"varchar(25) 'name'"` Id int `xorm:"pk 'id' autoincr"` CreatedAt time.Time `xorm:"created"` } func main() { var err error engine, err = xorm.NewEngine("mysql", "root:123456@/test") if err != nil { log.Fatal(err) return } err = engine.CreateTables(User{}) if err != nil { log.Fatal(err) return } /* u := make([]User, 5) u[0].Name = "abcd" u[1].Name = "acbd" u[2].Name = "dbac" u[3].Name = "cbda"