fix Count error when have Select statement
This commit is contained in:
parent
e6786ce052
commit
7b921a0f51
|
@ -30,6 +30,10 @@ func (session *Session) Count(bean ...interface{}) (int64, error) {
|
||||||
args = session.statement.RawParams
|
args = session.statement.RawParams
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(session.statement.selectStr) > 0 {
|
||||||
|
sqlStr = "SELECT COUNT(*) FROM ("+sqlStr+") _TEMP_"
|
||||||
|
}
|
||||||
|
|
||||||
var total int64
|
var total int64
|
||||||
err = session.queryRow(sqlStr, args...).Scan(&total)
|
err = session.queryRow(sqlStr, args...).Scan(&total)
|
||||||
if err == sql.ErrNoRows || err == nil {
|
if err == sql.ErrNoRows || err == nil {
|
||||||
|
|
|
@ -182,6 +182,10 @@ func TestCount(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, cnt)
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
|
total, err = testEngine.Select(colName).Where(cond).Count(new(UserinfoCount))
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, total)
|
||||||
|
|
||||||
total, err = testEngine.Where(cond).Count(new(UserinfoCount))
|
total, err = testEngine.Where(cond).Count(new(UserinfoCount))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, total)
|
assert.EqualValues(t, 1, total)
|
||||||
|
|
Loading…
Reference in New Issue