У меня есть система, которая проверяет веб-сайты на наличие определенных данных с заданной частотой. Каждый сайт имеет свою частоту проверки в столбце crawl_frequency
. Это значение в днях.
У меня есть такая таблица
CREATE TABLE `websites` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`domain` VARCHAR(191) NOT NULL COLLATE 'utf8mb4_unicode_ci',
`crawl_frequency` TINYINT(3) UNSIGNED NOT NULL DEFAULT '3',
`last_crawled_start` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
Я хочу выполнить запросы, чтобы найти новые веб-сайты для проверки с указанной частотой / интервалом проверки. На данный момент у меня есть этот запрос, который отлично работает, если crawl_frequency
для веб-сайта установлен на один день.
SELECT domain
FROM websites
WHERE last_crawled_start <= (now() - INTERVAL 1 DAY)
LIMIT 1
Есть ли способ в запросе MySQL, чтобы я мог использовать значение в столбце crawl_frequency
для каждой строки в предложении WHERE
.
Так, например, я хотел бы сделать что-то вроде:
SELECT domain
FROM websites
WHERE last_crawled_start <= (now() - INTERVAL {{INSERT VALUE OF CRAWL FREQUENCY FOR THIS PARTICULAR WEBSITE}} DAY)
LIMIT 1