Don't include Order for counting sql

This commit is contained in:
Jinzhu 2015-08-05 15:58:11 +08:00
parent 6b8f2fcab8
commit d21eed4b66
2 changed files with 13 additions and 8 deletions

View File

@ -206,15 +206,19 @@ func (scope *Scope) whereSql() (sql string) {
return
}
var hasCountRegexp = regexp.MustCompile(`(?i)count(.+)`)
func (scope *Scope) selectSql() string {
if len(scope.Search.selects) == 0 {
return "*"
}
sql := scope.buildSelectQuery(scope.Search.selects)
scope.Search.countingQuery = hasCountRegexp.MatchString(sql)
return scope.buildSelectQuery(scope.Search.selects)
}
func (scope *Scope) orderSql() string {
if len(scope.Search.orders) == 0 {
if len(scope.Search.orders) == 0 || scope.Search.countingQuery {
return ""
}
return " ORDER BY " + strings.Join(scope.Search.orders, ",")
@ -468,7 +472,7 @@ func (scope *Scope) related(value interface{}, foreignKeys ...string) *Scope {
/**
Return the table options string or an empty string if the table options does not exist
*/
func (scope *Scope) getTableOptions() string{
func (scope *Scope) getTableOptions() string {
tableOptions, ok := scope.Get("gorm:table_options")
if !ok {
return ""

View File

@ -21,6 +21,7 @@ type search struct {
tableName string
raw bool
Unscoped bool
countingQuery bool
}
type searchPreload struct {