2016-07-24 4 views
4

Я хотел бы знать, как, как сделать запрос, который делает это:MySQL запросов со временем и случайным выбором

У меня есть таблица вроде этого:

CREATE TABLE `sendingServers` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` text NOT NULL, 
    `address` text NOT NULL, 
    `token` text NOT NULL, 
    `lastPoll` datetime NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

И я хотел бы чтобы получить следующее:

  • Выберите все серверы, где lastPoll меньше, то Х секунд назад
  • затем выберите случайную запись из возвращаемого значения

Возможно ли это? Как мне это достичь?

ответ

4

Вы можете использовать что-то вроде этого:

select * from `sendingServers` 
where `lastPoll` > DATE_SUB(NOW(), INTERVAL 30 SECOND) 
order by rand() limit 1 
+0

Это идеальный вариант, спасибо! –