diff --git a/database/gdb/gdb_model.go b/database/gdb/gdb_model.go index e2954cab5..5e4b93ff2 100644 --- a/database/gdb/gdb_model.go +++ b/database/gdb/gdb_model.go @@ -844,16 +844,12 @@ func (m *Model) Count(where ...interface{}) (int, error) { if len(where) > 0 { return m.Where(where[0], where[1:]...).Count() } - defer func(fields string) { - m.fields = fields - }(m.fields) - if m.fields == "" || m.fields == "*" { - m.fields = "COUNT(1)" - } else { - m.fields = fmt.Sprintf(`COUNT(%s)`, m.fields) + countFields := "COUNT(1)" + if m.fields != "" && m.fields != "*" { + countFields = fmt.Sprintf(`COUNT(%s)`, m.fields) } condition, conditionArgs := m.formatCondition(false) - s := fmt.Sprintf("SELECT %s FROM %s %s", m.fields, m.tables, condition) + s := fmt.Sprintf("SELECT %s FROM %s %s", countFields, m.tables, condition) if len(m.groupBy) > 0 { s = fmt.Sprintf("SELECT COUNT(1) FROM (%s) count_alias", s) }