diff --git a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index 566488b0c2..20cc4c0e6e 100644 --- a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -811,6 +811,14 @@ public class MysqlQueryProvider extends QueryProvider { return MessageFormat.format("SELECT {0} FROM {1} LIMIT DE_OFFSET, DE_PAGE_SIZE ", StringUtils.join(array, ","), table); } + public String getTotalCount(boolean isTable, String sql, Datasource ds) { + if(isTable){ + return "SELECT COUNT(*) from " + String.format(MySQLConstants.KEYWORD_TABLE, sql); + }else { + return "SELECT COUNT(*) from ( " + sql + " ) DE_COUNT_TEMP"; + } + } + @Override public String createRawQuerySQLAsTmp(String sql, List fields) { return createRawQuerySQL(" (" + sqlFix(sql) + ") AS DE_TEMP LIMIT DE_OFFSET, DE_PAGE_SIZE ", fields, null); diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java index 73f1c37050..d2cd3b99c5 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -452,7 +452,7 @@ public class ExtractDataService { extractDataByKettle(datasetTable, datasource, datasetTableFields, extractType, sql.get("selectSQL").replace("DE_OFFSET", offset.toString()).replace("DE_PAGE_SIZE", extractPageSize.toString()).replace("DE_ALL", all.toString())); } } else { - extractDataByKettle(datasetTable, datasource, datasetTableFields, extractType, selectSQL); + extractDataByKettle(datasetTable, datasource, datasetTableFields, extractType, sql.get("selectSQL")); } }