Posts that probably need editing

5

Please login or register to vote for this query.

(click on this box to dismiss)

Updated with feedback from CodeReview.SE: https://codereview.stackexchange.com/q/176680

Musical Practice and Performance Meta

Q&A about the site for musicians, students, and enthusiasts

SELECT PostTypes.Name AS [Post Type],
       Posts.Id AS [Post Link],
       Posts.LastActivityDate AS [Last Activity]
FROM Posts
INNER JOIN PostTypes
ON Posts.PostTypeId = PostTypes.Id
INNER JOIN Users
ON Posts.OwnerUserId = Users.Id
WHERE Posts.PostTypeId NOT IN (6, 7) AND
Posts.Score > -1 AND -- Low quality posts are probably not worth salvaging
Users.Reputation < 4000 AND -- Posts by trusted users are exempt from editing (that is the theory anyway)
(
    (
        Posts.PostTypeId = 1 AND
        Posts.Id <> ALL (
            SELECT DISTINCT PostHistory.PostId
            FROM PostHistory
            WHERE PostHistory.PostId = Posts.Id AND
                  PostHistory.PostHistoryTypeId IN (14, 15)
            GROUP BY PostHistory.PostId
            HAVING COUNT(PostHistory.PostHistoryTypeId) % 2 = 1
        ) AND -- Locked posts can't be edited
        (
            Posts.Title LIKE '[abcdefghijklmnopqrstuvwxyz]%' OR
            (
                Posts.Title NOT LIKE '%?' AND
                (
                    LOWER(Posts.Title) LIKE 'is %' OR
                    LOWER(Posts.Title) LIKE 'are %' OR
                    LOWER(Posts.Title) LIKE 'do[en ]%' OR
                    LOWER(Posts.Title) LIKE '%wh[aeoy]%' OR
                    LOWER(Posts.Title) LIKE '%how%'
                )
            )
        )
    ) OR
    (
        Posts.PostTypeId = 2 AND
        Posts.ParentId <> ALL (
            SELECT DISTINCT PostHistory.PostId
            FROM PostHistory
            WHERE PostHistory.PostId = Posts.ParentId AND
                  PostHistory.PostHistoryTypeId IN (14, 15)
            GROUP BY PostHistory.PostId
            HAVING COUNT(PostHistory.PostHistoryTypeId) % 2 = 1
        )
    )
) AND
(
    (
        Posts.ClosedDate IS NULL OR
        DATEDIFF(day, Posts.ClosedDate, GETDATE()) > 6
    ) AND -- Don't edit recently closed questions as doing so will bump them into the review queue
    (
        Posts.Body LIKE '[abcdefghijklmnopqrstuvwxyz]%' OR
        Posts.Body LIKE '%[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]([ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrtuvwxyz]%' OR
        Posts.Body LIKE '%[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrtuvwxyz])[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]%' OR
        Posts.Body LIKE '%[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz],[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]%' OR
        Posts.Body LIKE '% i[ '']%'
    )
)
ORDER BY Posts.LastActivityDate ASC

Enter Parameters

Options:
Switch to main site
loading Hold tight while we fetch your results