diff --git a/src/main/kotlin/net/taehui/twilight/system/DB.kt b/src/main/kotlin/net/taehui/twilight/system/DB.kt index bcc0bdc..8710afa 100644 --- a/src/main/kotlin/net/taehui/twilight/system/DB.kt +++ b/src/main/kotlin/net/taehui/twilight/system/DB.kt @@ -7,7 +7,6 @@ import org.apache.commons.dbcp2.BasicDataSource import org.apache.commons.io.FileUtils import org.apache.commons.io.FilenameUtils -import org.apache.commons.lang3.SystemUtils import java.io.IOException import java.nio.file.Files import java.nio.file.Path @@ -519,7 +518,7 @@ """ SELECT COUNT(Comment_ID) AS Count FROM tw_comment - WHERE Avatar LIKE ? + WHERE Avatar = ? """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -542,7 +541,7 @@ """ SELECT Note_ID, Comment_ID FROM tw_comment - WHERE Avatar LIKE ? + WHERE Avatar = ? """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -591,12 +590,11 @@ """ SELECT Comment_ID FROM tw_comment - WHERE Note_ID LIKE ? AND Comment_ID = ? AND Is_Max = true + WHERE Comment_ID = ? """.trimIndent() ).use { dbStatement -> - dbStatement.setString(1, commentEntryPath.fileName.toString() + ":%") dbStatement.setString( - 2, FilenameUtils.removeExtension(commentFilePath.fileName.toString()) + 1, FilenameUtils.removeExtension(commentFilePath.fileName.toString()) ) dbStatement.executeQuery().use { rows -> if (rows.next()) { @@ -643,13 +641,13 @@ """ SELECT Avatar, Name FROM tw_bundle - WHERE Avatar = ? AND Name = ? + WHERE Name = ? AND Avatar = ? """.trimIndent() ).use { dbStatement -> - dbStatement.setString(1, bundleEntryPath.fileName.toString()) dbStatement.setString( - 2, FilenameUtils.removeExtension(bundleFilePath.fileName.toString()) + 1, FilenameUtils.removeExtension(bundleFilePath.fileName.toString()) ) + dbStatement.setString(2, bundleEntryPath.fileName.toString()) dbStatement.executeQuery().use { rows -> if (!rows.next()) { bundleFilePath @@ -756,8 +754,8 @@ db.prepareStatement( """ SELECT tw_comment.Date, Avatar_ID, Avatar_Name, Multiplier, Auto_Mode, Note_Salt_Mode, Audio_Multiplier, Faint_Note_Mode, Judgment_Mode, Hit_Points_Mode, Note_Mobility_Mode, Long_Note_Mode, Input_Favor_Mode, Note_Modify_Mode, Lowest_Judgment_Condition_Mode, Stand, Band, Is_P, Point, Salt, Comment_ID, Is_Paused, Input_Flags - FROM tw_comment, tn_avatar - WHERE Avatar_ID = Avatar AND tw_comment.Note_ID = ? AND Is_Max = true + FROM tn_avatar, tw_comment + WHERE tn_avatar.Avatar_ID = tw_comment.Avatar AND Note_ID = ? AND Is_Max = true ORDER BY Stand DESC """.trimIndent() ).use { dbStatement -> @@ -912,12 +910,12 @@ """ UPDATE tw_bundle SET Competence = ?, Date = Date - WHERE Avatar = ? AND Name = ? + WHERE Name = ? AND Avatar = ? """.trimIndent() ).use { dbStatement -> dbStatement.setInt(1, qwilightSetBundle.bundleCompetence) - dbStatement.setString(2, avatarID) - dbStatement.setString(3, qwilightSetBundle.bundleName) + dbStatement.setString(2, qwilightSetBundle.bundleName) + dbStatement.setString(3, avatarID) dbStatement.execute() } } @@ -1036,7 +1034,7 @@ """ SELECT Variety FROM tw_bundle - WHERE Avatar = ? AND Name = ? + WHERE Name = ? AND Avatar = ? """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -1054,7 +1052,7 @@ """ DELETE FROM tw_bundle - WHERE Avatar = ? AND Name = ? + WHERE Name = ? AND Avatar = ? """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -1094,7 +1092,7 @@ """ SELECT Avatar_ID, Avatar_Name FROM tw_ubuntu, tn_avatar - WHERE Ubuntu = Avatar_ID AND Avatar = ? + WHERE Avatar = ? AND Ubuntu = Avatar_ID """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -1351,7 +1349,7 @@ """ SELECT * FROM tw_bundle - WHERE Avatar = ? AND Name = ? + WHERE Name = ? AND Avatar = ? """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -1389,7 +1387,7 @@ """ SELECT Competence, Variety, Etc, Name FROM tw_bundle - WHERE Avatar = ? AND Name = ? + WHERE Name = ? AND Avatar = ? """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -1550,7 +1548,7 @@ """ SELECT Ubuntu, Notify_Ubuntu FROM tw_ubuntu LEFT OUTER JOIN tw_avatar - ON tw_ubuntu.Ubuntu = tw_avatar.Avatar + ON Ubuntu = tw_avatar.Avatar WHERE tw_ubuntu.Avatar = ? AND Notify_Ubuntu = 0 """.trimIndent() ).use { dbStatement -> @@ -1874,15 +1872,14 @@ pool.connection.use { db -> val isNotWant = want.isEmpty() val noteVarietyStatement = if (noteVariety > 0) "Note_Variety = $noteVariety" else null - val noteVarietyStatement0 = if (noteVarietyStatement != null) " WHERE $noteVarietyStatement" else " " - val noteVarietyStatement1 = if (noteVarietyStatement != null) " AND $noteVarietyStatement" else " " + val noteVarietyStatement0 = if (noteVarietyStatement != null) "WHERE $noteVarietyStatement" else " " + val noteVarietyStatement1 = if (noteVarietyStatement != null) "AND $noteVarietyStatement" else " " if (isNotWant) { db.prepareStatement( """ SELECT COUNT(Comment_ID) AS Total_Count, COUNT(DISTINCT tw_note.Note_ID, Avatar) AS Highest_Count, COUNT(DISTINCT tw_note.Note_ID) AS Note_Count FROM tw_note, tw_comment - WHERE tw_note.Note_ID = tw_comment.Note_ID - $noteVarietyStatement1 + WHERE tw_note.Note_ID = tw_comment.Note_ID $noteVarietyStatement1 """.trimIndent() ).use { dbStatement -> dbStatement.executeQuery().use { rows -> @@ -1899,29 +1896,29 @@ "0" -> """ SELECT COUNT(Comment_ID) AS Total_Count, COUNT(DISTINCT tw_note.Note_ID, Avatar) AS Highest_Count, COUNT(DISTINCT tw_note.Note_ID) AS Note_Count FROM tw_note, tw_comment - WHERE tw_note.Note_ID = tw_comment.Note_ID AND MATCH(Title) AGAINST(?) + WHERE tw_note.Note_ID = tw_comment.Note_ID AND MATCH(Title) AGAINST(?) $noteVarietyStatement1 """.trimIndent() "1" -> """ SELECT COUNT(Comment_ID) AS Total_Count, COUNT(DISTINCT tw_note.Note_ID, Avatar) AS Highest_Count, COUNT(DISTINCT tw_note.Note_ID) AS Note_Count FROM tw_note, tw_comment, tn_avatar - WHERE tw_note.Note_ID = tw_comment.Note_ID AND Avatar = Avatar_ID AND MATCH(Avatar_Name) AGAINST(?) + WHERE tw_note.Note_ID = tw_comment.Note_ID AND Avatar = Avatar_ID AND MATCH(Avatar_Name) AGAINST(?) $noteVarietyStatement1 """.trimIndent() "2" -> """ SELECT COUNT(Comment_ID) AS Total_Count, COUNT(DISTINCT tw_note.Note_ID, Avatar) AS Highest_Count, COUNT(DISTINCT tw_note.Note_ID) AS Note_Count FROM tw_note, tw_comment - WHERE tw_note.Note_ID = tw_comment.Note_ID AND MATCH(Artist) AGAINST(?) + WHERE tw_note.Note_ID = tw_comment.Note_ID AND MATCH(Artist) AGAINST(?) $noteVarietyStatement1 """.trimIndent() "3" -> """ SELECT COUNT(Comment_ID) AS Total_Count, COUNT(DISTINCT tw_note.Note_ID, Avatar) AS Highest_Count, COUNT(DISTINCT tw_note.Note_ID) AS Note_Count FROM tw_note, tw_comment - WHERE tw_note.Note_ID = tw_comment.Note_ID AND MATCH(Genre) AGAINST(?) + WHERE tw_note.Note_ID = tw_comment.Note_ID AND MATCH(Genre) AGAINST(?) $noteVarietyStatement1 """.trimIndent() else -> null - } + noteVarietyStatement1 + } ).use { dbStatement -> if (dbStatement != null) { dbStatement.setString(1, want) @@ -1937,18 +1934,18 @@ } val asStatement = """ DISTINCT tw_note.Note_ID, Note_Variety, Artist, Title, Genre, tw_note.Level_Text, tw_note.Level, ( - SELECT COUNT(DISTINCT Note_ID, Avatar) - FROM tw_comment - WHERE tw_note.Note_ID = tw_comment.Note_ID - ) AS Highest, ( - SELECT COUNT(Comment_ID) - FROM tw_comment - WHERE tw_note.Note_ID = tw_comment.Note_ID - ) AS Total, ( - SELECT MAX(Date) - FROM tw_comment - WHERE tw_note.Note_ID = tw_comment.Note_ID - ) AS Date + SELECT COUNT(DISTINCT Note_ID, Avatar) + FROM tw_comment + WHERE tw_note.Note_ID = tw_comment.Note_ID + ) AS Highest, ( + SELECT COUNT(Comment_ID) + FROM tw_comment + WHERE tw_note.Note_ID = tw_comment.Note_ID + ) AS Total, ( + SELECT MAX(Date) + FROM tw_comment + WHERE tw_note.Note_ID = tw_comment.Note_ID + ) AS Date """.trimIndent() val fitStatement = when (fit) { "0" -> " ORDER BY Highest DESC " @@ -1981,7 +1978,7 @@ """ SELECT $asStatement FROM tw_note, tw_comment, tn_avatar - WHERE tw_note.Note_ID = tw_comment.Note_ID AND Avatar = Avatar_ID AND MATCH(Avatar_Name) AGAINST(?) $noteVarietyStatement1 $fitStatement LIMIT ?, ? + WHERE tw_note.Note_ID = tw_comment.Note_ID AND tw_comment.Avatar = tn_avatar.Avatar_ID AND MATCH(Avatar_Name) AGAINST(?) $noteVarietyStatement1 $fitStatement LIMIT ?, ? """.trimIndent() ) @@ -1989,7 +1986,7 @@ """ SELECT $asStatement FROM tw_note - WHERE MATCH(Artist) AGAINST(?) ESCAPE "\\" $noteVarietyStatement1 $fitStatement LIMIT ?, ? + WHERE MATCH(Artist) AGAINST(?) $noteVarietyStatement1 $fitStatement LIMIT ?, ? """.trimIndent() ) @@ -1997,7 +1994,7 @@ """ SELECT $asStatement FROM tw_note - WHERE MATCH(Genre) AGAINST(?) ESCAPE "\\" $noteVarietyStatement1 $fitStatement LIMIT ?, ? + WHERE MATCH(Genre) AGAINST(?) $noteVarietyStatement1 $fitStatement LIMIT ?, ? """.trimIndent() ) @@ -2115,7 +2112,7 @@ """ SELECT SUM(Total_Notes * Stand / 1000000) AS Value FROM tw_comment, tw_note - WHERE Avatar = ? AND tw_comment.Note_ID = tw_note.Note_ID AND Is_Salt = false + WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = ? AND Is_Salt = false """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -2221,8 +2218,8 @@ db.prepareStatement( """ SELECT COUNT(Comment_ID) AS Total_Count, COUNT(DISTINCT Note_ID) AS Highest_Count, Avatar_ID, Avatar_Name, Avatar_Intro, Last_Date - FROM tn_avatar, tw_comment - WHERE Avatar_ID = tw_comment.Avatar AND Avatar_ID = ? + FROM tw_comment, tn_avatar + WHERE tw_comment.Avatar_ID = tn_avatar.Avatar AND Avatar_ID = ? """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -2242,8 +2239,8 @@ db.prepareStatement( """ SELECT SUM(Length) AS Total_Length - FROM tn_avatar, tw_comment, tw_note - WHERE Avatar_ID = tw_comment.Avatar AND tw_comment.Note_ID = tw_note.Note_ID AND Avatar_ID = ? + FROM tw_note, tw_comment, tn_avatar + WHERE tw_note.Note_ID = tw_comment.Note_ID AND tw_comment.Avatar = tn_avatar.Avatar_ID AND Avatar_ID = ? """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) @@ -2285,8 +2282,8 @@ db.prepareStatement( """ SELECT MAX(Date) AS Date, tw_note.Note_ID, Note_Variety, Title, Artist, Genre, tw_note.Level_Text, Level - FROM tw_comment, tw_note - WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = ? + FROM tw_note, tw_comment + WHERE tw_note.Note_ID = tw_comment.Note_ID AND Avatar = ? GROUP BY tw_note.Note_ID ORDER BY Date DESC LIMIT 10 @@ -2314,8 +2311,8 @@ db.prepareStatement( """ SELECT tw_note.Note_ID, Note_Variety, Title, Artist, Genre, tw_note.Level_Text, Level, COUNT(Comment_ID) AS Count - FROM tw_comment, tw_note - WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = ? + FROM tw_note, tw_comment + WHERE tw_note.Note_ID = tw_comment.Note_ID AND Avatar = ? GROUP BY tw_note.Note_ID ORDER BY COUNT DESC LIMIT 10 @@ -2351,7 +2348,7 @@ """ SELECT COUNT(Comment_ID) AS Count FROM tw_comment - WHERE Avatar = ? AND Date BETWEEN "$yyyyMMDD 00:00:00" AND "$yyyyMMDD 23:59:59" + WHERE Date BETWEEN "$yyyyMMDD 00:00:00" AND "$yyyyMMDD 23:59:59" AND Avatar = ? """.trimIndent() ).use { it.setString(1, avatarID) @@ -2508,8 +2505,8 @@ it.prepareStatement( """ SELECT tw_note.Note_ID, Note_Variety, Artist, Title, Genre, Level_Text, tw_note.Level, Stand, Avatar_ID, Avatar_Name, Ability_5K * (POWER(Stand / 1000000, 3) - 0.5 * POWER(Stand / 1000000, 2) + 0.5 * (Stand / 1000000)) AS Value - FROM tw_comment, tw_note, tn_avatar - WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = Avatar_ID AND Is_Max = true AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 5 OR Input_Favor_Mode = 10) AND Ability_5K > 0.0 + FROM tw_note, tw_comment, tn_avatar + WHERE tw_note.Note_ID = tw_comment.Note_ID AND tw_comment.Avatar = tn_avatar.Avatar_ID AND Ability_5K > 0.0 AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 5 OR Input_Favor_Mode = 10) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND Is_Max = true ORDER BY Value DESC """.trimIndent() ).use { dbStatement -> @@ -2533,8 +2530,8 @@ db.prepareStatement( """ SELECT Ability_5K * (POWER(Stand / 1000000, 3) - 0.5 * POWER(Stand / 1000000, 2) + 0.5 * (Stand / 1000000)) AS Value - FROM tw_comment, tw_note, tn_avatar - WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = Avatar_ID AND Is_Max = true AND Avatar = ? AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 5 OR Input_Favor_Mode = 10) AND Ability_5K > 0.0 + FROM tw_note, tw_comment, tn_avatar + WHERE tw_note.Note_ID = tw_comment.Note_ID AND tw_comment.Avatar = tn_avatar.Avatar_ID AND Ability_5K > 0.0 AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 5 OR Input_Favor_Mode = 10) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND Is_Max = true ORDER BY Value DESC LIMIT 50 """.trimIndent() @@ -2557,8 +2554,8 @@ it.prepareStatement( """ SELECT tw_note.Note_ID, Note_Variety, Artist, Title, Genre, Level_Text, tw_note.Level, Stand, Avatar_ID, Avatar_Name, Ability_7K * (POWER(Stand / 1000000, 3) - 0.5 * POWER(Stand / 1000000, 2) + 0.5 * (Stand / 1000000)) AS Value - FROM tw_comment, tw_note, tn_avatar - WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = Avatar_ID AND Is_Max = true AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 7 OR Input_Favor_Mode = 11) AND Ability_7K > 0.0 + FROM tw_note, tw_comment, tn_avatar + WHERE tw_note.Note_ID = tw_comment.Note_ID AND tw_comment.Avatar = tn_avatar.Avatar_ID AND Ability_7K > 0.0 AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 7 OR Input_Favor_Mode = 11) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND Is_Max = true ORDER BY Value DESC """.trimIndent() ).use { dbStatement -> @@ -2582,8 +2579,8 @@ db.prepareStatement( """ SELECT Ability_7K * (POWER(Stand / 1000000, 3) - 0.5 * POWER(Stand / 1000000, 2) + 0.5 * (Stand / 1000000)) AS Value - FROM tw_comment, tw_note, tn_avatar - WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = Avatar_ID AND Is_Max = true AND Avatar = ? AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 7 OR Input_Favor_Mode = 11) AND Ability_7K > 0.0 + FROM tw_note, tw_comment, tn_avatar + WHERE tw_note.Note_ID = tw_comment.Note_ID AND tw_comment.Avatar = tn_avatar.Avatar_ID AND Ability_7K > 0.0 AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 7 OR Input_Favor_Mode = 11) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND Is_Max = true ORDER BY Value DESC LIMIT 50 """.trimIndent() @@ -2606,8 +2603,8 @@ it.prepareStatement( """ SELECT tw_note.Note_ID, Note_Variety, Artist, Title, Genre, Level_Text, tw_note.Level, Stand, Avatar_ID, Avatar_Name, Ability_9K * (POWER(Stand / 1000000, 3) - 0.5 * POWER(Stand / 1000000, 2) + 0.5 * (Stand / 1000000)) AS Value - FROM tw_comment, tw_note, tn_avatar - WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = Avatar_ID AND Is_Max = true AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 9) AND Ability_9K > 0.0 + FROM tw_note, tw_comment, tn_avatar + WHERE tw_note.Note_ID = tw_comment.Note_ID AND tw_comment.Avatar = tn_avatar.Avatar_ID AND Ability_9K > 0.0 AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 9) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND Is_Max = true ORDER BY Value DESC """.trimIndent() ).use { dbStatement -> @@ -2631,8 +2628,8 @@ db.prepareStatement( """ SELECT Ability_9K * (POWER(Stand / 1000000, 3) - 0.5 * POWER(Stand / 1000000, 2) + 0.5 * (Stand / 1000000)) AS Value - FROM tw_comment, tw_note, tn_avatar - WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = Avatar_ID AND Is_Max = true AND Avatar = ? AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 9) AND Ability_9K > 0.0 + FROM tw_note, tw_comment, tn_avatar + WHERE tw_note.Note_ID = tw_comment.Note_ID AND tw_comment.Avatar = tn_avatar.Avatar_ID AND Ability_9K > 0.0 AND (Input_Favor_Mode = 0 OR Input_Favor_Mode = 9) AND (Hit_Points_Mode = 1 OR Hit_Points_Mode = 2 OR Hit_Points_Mode = 5) AND (Judgment_Mode = 1 OR Judgment_Mode = 2 OR Judgment_Mode = 4) AND Is_Max = true ORDER BY Value DESC LIMIT 50 """.trimIndent() @@ -2682,13 +2679,13 @@ val ability9KAvatars = mutableListOf() val levelAvatars = mutableListOf() val levyingDate = yyyyMMDDFormat.format(LocalDate.now().withDayOfMonth(1)) - val defaultFilter = "WHERE Avatar = tn_avatar.Avatar_ID" - val dateStatement = "AND '$levyingDate' <= tw_comment.Date" + val defaultFilter = "tw_comment.Avatar = tn_avatar.Avatar_ID" + val dateFilter = "'$levyingDate' <= tw_comment.Date" fun getTotalAvatarsStatement(filter: String): String { return """ SELECT Avatar_ID, Avatar_Name, COUNT(tw_comment.Note_ID) AS Value FROM tw_comment, tn_avatar - $filter + WHERE $filter GROUP BY Avatar_ID ORDER BY Value DESC LIMIT 10 @@ -2699,7 +2696,7 @@ return """ SELECT Avatar_ID, Avatar_Name, COUNT(DISTINCT tw_comment.Note_ID) AS Value FROM tw_comment, tn_avatar - $filter + WHERE $filter GROUP BY Avatar_ID ORDER BY Value DESC LIMIT 10 @@ -2710,7 +2707,7 @@ return """ SELECT Avatar_ID, Avatar_Name, SUM(Stand) AS Value FROM tw_comment, tn_avatar - $filter AND Is_Max = true + WHERE $filter AND Is_Max = true GROUP BY Avatar_ID ORDER BY Value DESC LIMIT 10 @@ -2721,7 +2718,7 @@ return """ SELECT Avatar_ID, Avatar_Name, MAX(Band) AS Value FROM tw_comment, tn_avatar - $filter + WHERE $filter GROUP BY Avatar_ID ORDER BY Value DESC LIMIT 10 @@ -2746,7 +2743,7 @@ }, logValueFuture { pool.connection.use { - it.prepareStatement(getTotalAvatarsStatement("$defaultFilter $dateStatement")) + it.prepareStatement(getTotalAvatarsStatement("$dateFilter AND $defaultFilter ")) .use { dbStatement -> dbStatement.executeQuery().use { rows -> while (rows.next()) { @@ -2779,7 +2776,7 @@ pool.connection.use { it.prepareStatement( getHighestAvatarsStatement( - "$defaultFilter $dateStatement AND Is_Max = true" + "$dateFilter AND $defaultFilter AND Is_Max = true" ) ).use { dbStatement -> dbStatement.executeQuery().use { rows -> @@ -2811,7 +2808,7 @@ }, logValueFuture { pool.connection.use { - it.prepareStatement(getStandAvatarsStatement("$defaultFilter $dateStatement")) + it.prepareStatement(getStandAvatarsStatement("$dateFilter AND $defaultFilter")) .use { dbStatement -> dbStatement.executeQuery().use { rows -> while (rows.next()) { @@ -2842,7 +2839,7 @@ }, logValueFuture { pool.connection.use { - it.prepareStatement(getBandAvatarsStatement("$defaultFilter $dateStatement")) + it.prepareStatement(getBandAvatarsStatement("$dateFilter AND $defaultFilter")) .use { dbStatement -> dbStatement.executeQuery().use { rows -> while (rows.next()) { @@ -2888,8 +2885,8 @@ it.prepareStatement( """ SELECT Avatar_ID, Avatar_Name, 1 + SUM(Total_Notes * Stand / 1000000 / 10000) AS Value - FROM tw_comment, tw_note, tn_avatar - WHERE tw_comment.Note_ID = tw_note.Note_ID AND Avatar = Avatar_ID AND Is_Salt = false + FROM tw_note, tw_comment, tn_avatar + WHERE tw_note.Note_ID = tw_comment.Note_ID AND tw_comment.Avatar = tn_avatar.Avatar_ID AND Is_Salt = false GROUP BY Avatar_ID ORDER BY Value DESC LIMIT 50 @@ -3149,8 +3146,8 @@ it.prepareStatement( """ SELECT Input_Mode AS Mode, COUNT(Input_Mode) AS Value - FROM tw_comment, tw_note - WHERE tw_comment.Note_ID = tw_note.Note_ID + FROM tw_note, tw_comment + WHERE tw_note.Note_ID = tw_comment.Note_ID GROUP BY Mode ORDER BY Value DESC """.trimIndent() @@ -3432,23 +3429,23 @@ """ SELECT Stand, Date FROM tw_comment - WHERE Avatar = ? AND Note_ID = ? AND Date = ( + WHERE Note_ID = ? AND Date = ( SELECT MAX(Date) - FROM tw_comment AS target_comment - WHERE Avatar = ? AND Note_ID = ? AND Stand = ( + FROM tw_comment AS tw_comment_2 + WHERE Note_ID = ? AND Avatar = ? AND Stand = ( SELECT MAX(Stand) - FROM tw_comment AS target_comment - WHERE Avatar = ? AND Note_ID = ? + FROM tw_comment AS tw_comment_3 + WHERE Note_ID = ? AND Avatar = ? ) - ) + ) AND Avatar = ? """.trimIndent() ).use { dbStatement -> - dbStatement.setString(1, avatarID) + dbStatement.setString(1, noteID) dbStatement.setString(2, noteID) dbStatement.setString(3, avatarID) dbStatement.setString(4, noteID) dbStatement.setString(5, avatarID) - dbStatement.setString(6, noteID) + dbStatement.setString(6, avatarID) dbStatement.executeQuery().use { if (it.next()) { stand = it.getInt("Stand") @@ -3460,13 +3457,13 @@ """ UPDATE tw_comment SET Date = Date, Is_Max = (Stand = ? AND Date = ?) - WHERE Avatar = ? AND Note_ID = ? + WHERE Note_ID = ? AND Avatar = ? """.trimIndent() ).use { dbStatement -> dbStatement.setInt(1, stand) dbStatement.setTimestamp(2, date) - dbStatement.setString(3, avatarID) - dbStatement.setString(4, noteID) + dbStatement.setString(3, noteID) + dbStatement.setString(4, avatarID) dbStatement.execute() } it.commit()