Перед выполнением основного запросы нужно обязательно вначале установить все комментарии как одобренные с помощью запроса
1 |
UPDATE in_comments u1 SET u1.comment_approved = 1 WHERE 1 |
И после этого сразу же выполнять основной запрос.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
SET @row_number1 = 0; SET @row_number11 = 0; SET @max_number11 = 5; SET @min_number11 = 3; UPDATE in_comments u1 SET u1.comment_approved = 0 WHERE u1.comment_ID in ( select aaa1.comment_ID from ( SELECT (@row_number1:=@row_number1 + 1) AS num1, a1.* FROM in_comments a1 order by a1.comment_post_ID, a1.comment_date desc, a1.comment_ID asc) aaa1, ( select aa1.* from (SELECT (@row_number11:=@row_number11 + 1) AS num2, a1.* FROM in_comments a1 order by a1.comment_post_ID, a1.comment_date desc, a1.comment_ID asc) aa1, (SELECT a2.* FROM in_comments a2 where a2.comment_date = (select max(ta2.comment_date) as max_date from in_comments ta2 where ta2.comment_post_ID = a2.comment_post_ID) order by a2.comment_post_ID, a2.comment_date desc, a2.comment_ID asc) aa2 where aa1.comment_ID = aa2.comment_ID and aa1.comment_post_ID = aa2.comment_post_ID ) aaa2 where aaa1.num1 >= aaa2.num2 + FLOOR(RAND() * (@max_number11 - @min_number11 + 1)) + @min_number11 and aaa1.comment_post_ID = aaa2.comment_post_ID ) |