From 30a471a6fef76d9e000ba1ba3d8a92a5731114d7 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 9 Jun 2023 11:19:13 +0200 Subject: [PATCH] for mysql too --- src/librssguard/database/databasequeries.cpp | 30 ++++++++++++++------ 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/librssguard/database/databasequeries.cpp b/src/librssguard/database/databasequeries.cpp index ab42fafc9..0da0dc28e 100644 --- a/src/librssguard/database/databasequeries.cpp +++ b/src/librssguard/database/databasequeries.cpp @@ -661,14 +661,28 @@ QMap DatabaseQueries::getMessageCountsForAllLabels(const QSqlQuery q(db); q.setForwardOnly(true); - q.prepare(QSL("SELECT l.custom_id, ('%.' || l.id || '.%') pid, SUM(m.is_read), COUNT(*) FROM Labels l " - "INNER JOIN Messages m " - " ON m.labels LIKE pid " - "WHERE " - " m.is_deleted = 0 AND " - " m.is_pdeleted = 0 AND " - " m.account_id = :account_id " - "GROUP BY pid;")); + + if (db.driverName() == QSL(APP_DB_MYSQL_DRIVER)) { + q.prepare(QSL("SELECT l.custom_id, CONCAT('%.', l.id,'.%') pid, SUM(m.is_read), COUNT(*) FROM Labels l " + "INNER JOIN Messages m " + " ON m.labels LIKE pid " + "WHERE " + " m.is_deleted = 0 AND " + " m.is_pdeleted = 0 AND " + " m.account_id = :account_id " + "GROUP BY pid;")); + } + else { + q.prepare(QSL("SELECT l.custom_id, ('%.' || l.id || '.%') pid, SUM(m.is_read), COUNT(*) FROM Labels l " + "INNER JOIN Messages m " + " ON m.labels LIKE pid " + "WHERE " + " m.is_deleted = 0 AND " + " m.is_pdeleted = 0 AND " + " m.account_id = :account_id " + "GROUP BY pid;")); + } + q.bindValue(QSL(":account_id"), account_id); if (q.exec()) {