|
@@ -1140,7 +1140,14 @@ func (statement *Statement) genCountSQL(bean interface{}) (string, []interface{}
|
|
|
|
|
|
|
|
condSQL, condArgs, _ := statement.genConds(bean)
|
|
condSQL, condArgs, _ := statement.genConds(bean)
|
|
|
|
|
|
|
|
- return statement.genSelectSQL("count(*)", condSQL), append(statement.joinArgs, condArgs...)
|
|
|
|
|
|
|
+ var selectSql = statement.selectStr
|
|
|
|
|
+ if len(selectSql) <= 0 {
|
|
|
|
|
+ if statement.IsDistinct {
|
|
|
|
|
+ selectSql = fmt.Sprintf("count(DISTINCT %s)", statement.ColumnStr)
|
|
|
|
|
+ }
|
|
|
|
|
+ selectSql = "count(*)"
|
|
|
|
|
+ }
|
|
|
|
|
+ return statement.genSelectSQL(selectSql, condSQL), append(statement.joinArgs, condArgs...)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (statement *Statement) genSumSQL(bean interface{}, columns ...string) (string, []interface{}) {
|
|
func (statement *Statement) genSumSQL(bean interface{}, columns ...string) (string, []interface{}) {
|
|
@@ -1192,7 +1199,7 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
|
|
|
top = fmt.Sprintf(" TOP %d ", statement.LimitN)
|
|
top = fmt.Sprintf(" TOP %d ", statement.LimitN)
|
|
|
}
|
|
}
|
|
|
if statement.Start > 0 {
|
|
if statement.Start > 0 {
|
|
|
- var column = "(id)"
|
|
|
|
|
|
|
+ var column string
|
|
|
if len(statement.RefTable.PKColumns()) == 0 {
|
|
if len(statement.RefTable.PKColumns()) == 0 {
|
|
|
for _, index := range statement.RefTable.Indexes {
|
|
for _, index := range statement.RefTable.Indexes {
|
|
|
if len(index.Cols) == 1 {
|
|
if len(index.Cols) == 1 {
|
|
@@ -1203,7 +1210,17 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
|
|
|
if len(column) == 0 {
|
|
if len(column) == 0 {
|
|
|
column = statement.RefTable.ColumnsSeq()[0]
|
|
column = statement.RefTable.ColumnsSeq()[0]
|
|
|
}
|
|
}
|
|
|
|
|
+ } else {
|
|
|
|
|
+ column = statement.RefTable.PKColumns()[0].Name
|
|
|
}
|
|
}
|
|
|
|
|
+ if statement.needTableName() {
|
|
|
|
|
+ if len(statement.TableAlias) > 0 {
|
|
|
|
|
+ column = statement.TableAlias + "." + column
|
|
|
|
|
+ } else {
|
|
|
|
|
+ column = statement.TableName() + "." + column
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
var orderStr string
|
|
var orderStr string
|
|
|
if len(statement.OrderStr) > 0 {
|
|
if len(statement.OrderStr) > 0 {
|
|
|
orderStr = " ORDER BY " + statement.OrderStr
|
|
orderStr = " ORDER BY " + statement.OrderStr
|