MySQL оставить рандомное количество комментариев

Перед выполнением основного запросы нужно обязательно вначале установить все комментарии как одобренные с помощью запроса

UPDATE in_comments u1 SET u1.comment_approved = 1 WHERE 1

И после этого сразу же выполнять основной запрос.

	
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
) 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *