From 2d3257f2098fe00789e76dd8981cd876fe1b27b0 Mon Sep 17 00:00:00 2001 From: Robin Kupper Date: Wed, 30 Nov 2011 18:13:19 +0100 Subject: [PATCH] Minor MySQL improvements --- src/de/diddiz/LogBlock/QueryParams.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/de/diddiz/LogBlock/QueryParams.java b/src/de/diddiz/LogBlock/QueryParams.java index 01b7b73..ba10799 100644 --- a/src/de/diddiz/LogBlock/QueryParams.java +++ b/src/de/diddiz/LogBlock/QueryParams.java @@ -111,9 +111,9 @@ public class QueryParams implements Cloneable from += "LEFT JOIN `" + getTable() + "-chest` USING (id) "; return select + " " + from + getWhere() + "ORDER BY date " + order + ", id " + order + " " + getLimit(); } else if (sum == SummarizationMode.TYPES) - return "SELECT type, SUM(created) AS created, SUM(destroyed) AS destroyed FROM ((SELECT type, count(type) AS created, 0 AS destroyed FROM `" + getTable() + "` INNER JOIN `lb-players` USING (playerid) " + getWhere(BlockChangeType.CREATED) + "GROUP BY type) UNION (SELECT replaced AS type, 0 AS created, count(replaced) AS destroyed FROM `" + getTable() + "` INNER JOIN `lb-players` USING (playerid) " + getWhere(BlockChangeType.DESTROYED) + "GROUP BY replaced)) AS t GROUP BY type ORDER BY SUM(created) + SUM(destroyed) " + order + " " + getLimit(); + return "SELECT type, SUM(created) AS created, SUM(destroyed) AS destroyed FROM ((SELECT type, count(*) AS created, 0 AS destroyed FROM `" + getTable() + "` INNER JOIN `lb-players` USING (playerid) " + getWhere(BlockChangeType.CREATED) + "GROUP BY type) UNION (SELECT replaced AS type, 0 AS created, count(*) AS destroyed FROM `" + getTable() + "` INNER JOIN `lb-players` USING (playerid) " + getWhere(BlockChangeType.DESTROYED) + "GROUP BY replaced)) AS t GROUP BY type ORDER BY SUM(created) + SUM(destroyed) " + order + " " + getLimit(); else - return "SELECT playername, SUM(created) AS created, SUM(destroyed) AS destroyed FROM ((SELECT playerid, count(type) AS created, 0 AS destroyed FROM `" + getTable() + "` " + getWhere(BlockChangeType.CREATED) + "GROUP BY playerid) UNION (SELECT playerid, 0 AS created, count(replaced) AS destroyed FROM `" + getTable() + "` " + getWhere(BlockChangeType.DESTROYED) + "GROUP BY playerid)) AS t INNER JOIN `lb-players` USING (playerid) GROUP BY playerid ORDER BY SUM(created) + SUM(destroyed) " + order + " " + getLimit(); + return "SELECT playername, SUM(created) AS created, SUM(destroyed) AS destroyed FROM ((SELECT playerid, count(*) AS created, 0 AS destroyed FROM `" + getTable() + "` " + getWhere(BlockChangeType.CREATED) + "GROUP BY playerid) UNION (SELECT playerid, 0 AS created, count(*) AS destroyed FROM `" + getTable() + "` " + getWhere(BlockChangeType.DESTROYED) + "GROUP BY playerid)) AS t INNER JOIN `lb-players` USING (playerid) GROUP BY playerid ORDER BY SUM(created) + SUM(destroyed) " + order + " " + getLimit(); } public String getTable() { @@ -200,7 +200,6 @@ public class QueryParams implements Cloneable } break; case BOTH: - where.append("type <> replaced AND "); if (!types.isEmpty()) { where.append('('); for (final int type : types) @@ -208,9 +207,9 @@ public class QueryParams implements Cloneable where.delete(where.length() - 4, where.length()); where.append(") AND "); } + where.append("type != replaced AND "); break; case CREATED: - where.append("type <> replaced AND "); if (!types.isEmpty()) { where.append('('); for (final int type : types) @@ -218,10 +217,10 @@ public class QueryParams implements Cloneable where.delete(where.length() - 4, where.length()); where.append(") AND "); } else - where.append("type > 0 AND "); + where.append("type != 0 AND "); + where.append("type != replaced AND "); break; case DESTROYED: - where.append("type <> replaced AND "); if (!types.isEmpty()) { where.append('('); for (final int type : types) @@ -229,10 +228,11 @@ public class QueryParams implements Cloneable where.delete(where.length() - 4, where.length()); where.append(") AND "); } else - where.append("replaced > 0 AND "); + where.append("replaced != 0 AND "); + where.append("type != replaced AND "); break; case CHESTACCESS: - where.append("type = replaced AND (type = 23 OR type = 54 OR type = 61 OR type = 62) AND "); + where.append("(type = 23 OR type = 54 OR type = 61 OR type = 62) AND type = replaced AND "); if (!types.isEmpty()) { where.append('('); for (final int type : types)