mirror of https://github.com/go-gorm/gorm.git
Support select
This commit is contained in:
parent
334d05645f
commit
dd719e4512
|
@ -3,10 +3,8 @@
|
|||
Yet Another ORM library for Go, aims for developer friendly
|
||||
|
||||
## TODO
|
||||
* Pluck
|
||||
* Order
|
||||
* Limit
|
||||
* Select
|
||||
* Offset
|
||||
* Or query
|
||||
* Not query
|
||||
|
|
13
orm_test.go
13
orm_test.go
|
@ -225,7 +225,18 @@ func TestComplexWhere(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestOrder(t *testing.T) {
|
||||
func TestSelect(t *testing.T) {
|
||||
var user User
|
||||
db.Where("name = ?", "3").Select("name").Find(&user)
|
||||
if user.Id != 0 {
|
||||
t.Errorf("Should not got ID because I am only looking for age, %+v", user.Id)
|
||||
}
|
||||
if user.Name != "3" {
|
||||
t.Errorf("Should got Name = 3 when searching it, %+v", user.Id)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPluck(t *testing.T) {
|
||||
var ages []int64
|
||||
db.Model(&[]User{}).Order("age desc").Pluck("age", &ages)
|
||||
debug(ages)
|
||||
|
|
10
sql.go
10
sql.go
|
@ -26,7 +26,7 @@ func (s *Orm) explain(value interface{}, operation string) *Orm {
|
|||
}
|
||||
|
||||
func (s *Orm) querySql(out interface{}) {
|
||||
s.Sql = fmt.Sprintf("SELECT * FROM %v %v", s.TableName, s.whereSql())
|
||||
s.Sql = fmt.Sprintf("SELECT %v FROM %v %v", s.selectSql(), s.TableName, s.whereSql())
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -190,6 +190,14 @@ func (s *Orm) whereSql() (sql string) {
|
|||
return
|
||||
}
|
||||
|
||||
func (s *Orm) selectSql() string {
|
||||
if len(s.selectStr) == 0 {
|
||||
return " * "
|
||||
} else {
|
||||
return s.selectStr
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Orm) addToVars(value interface{}) string {
|
||||
s.SqlVars = append(s.SqlVars, value)
|
||||
return fmt.Sprintf("$%d", len(s.SqlVars))
|
||||
|
|
Loading…
Reference in New Issue