Sinatra
Какой sql запрос необходимо выполнить?
Сегодня, 15:10
Cделай резервную копию на всякий случай
CREATE TABLE dle_post_backup LIKE dle_post;
INSERT INTO dle_post_backup
SELECT * FROM dle_post;
Теперь замена
UPDATE dle_post AS p
JOIN (
SELECT
id,
ROW_NUMBER() OVER (ORDER BY id) AS rn,
COUNT(*) OVER () AS total
FROM dle_post
) AS n ON p.id = n.id
SET p.date = TIMESTAMPADD(
SECOND,
FLOOR(
(
(n.rn - 1 + RAND()) / n.total
) * TIMESTAMPDIFF(
SECOND,
'2020-01-01 00:00:00',
'2026-02-01 23:59:59'
)
),
'2020-01-01 00:00:00'
);
Проверка результата
SELECT id, date, title
FROM dle_post
ORDER BY id ASC
LIMIT 100;
Проверка диапазона дат
SELECT
COUNT(*) AS total_news,
MIN(date) AS oldest_news,
MAX(date) AS newest_news
FROM dle_post;